scrollTop
ドキュメントの高さの半分よりも低い場合は位置を検出し、ページの上部にscrollTop
スクロールするか、そうでない場合は下部にスクロールするモバイルデバイス用のページを作成しようとしています。
私はこれを使用してそれを達成しました:
var ScrollTimeout;
$(window).on('scroll',function(){
clearTimeout(ScrollTimeout);
ScrollTimeout = setTimeout(scrollToTopOrBottom,200);
});
問題は、ユーザーがスクロールを停止しても指が画面上にあるときにタイムアウトが発生することです。
それから私はtouchend
イベントで働きました、そしてそれは素晴らしかったです.
$(document).on('touchend',function(){
scrollToTop();
});
ユーザーは (指を画面に置いたまま) スクロールを停止し、scrollToTopOrBottom()
関数をトリガーせずにスクロールを続けることができます。
問題は、ブラウザ間でイベントに一貫性がないことです。
一部のブラウザー (Maxthon および Android) では、touchend
イベントは意図したとおりに機能しましたが、Opera Mobile および Chrome では、touchend
イベントは発生しません。これの説明は、以前にtouchend
発火したため、発火しないということtouchcancel
です。
私はこれを試しました
$(document).on('touchmove',function(e){
e.preventDefault();
});
のトリガーを回避することに成功しましたtouchcancel
が、不運にもスクロールの自然な動作も回避しました。
これをどのように達成できるか知っている人はいますか?私は完全にアイデアがありません。
ありがとう。