我試圖爲檢測scrollTop
位置的移動設備創建一個頁面,如果scrollTop
低於文檔高度的一半,則滾動到頁面的頂部,如果不是,則滾動到底部。Touchend在touchmove後沒有觸發
我已經實現了,通過使用這樣的:
var ScrollTimeout;
$(window).on('scroll',function(){
clearTimeout(ScrollTimeout);
ScrollTimeout = setTimeout(scrollToTopOrBottom,200);
});
的問題是超時火災,當用戶已經停止滾動,但仍然有在屏幕上的手指。
然後我與touchend
事件一起工作,它很棒。
$(document).on('touchend',function(){
scrollToTop();
});
用戶可以(在屏幕上用手指仍)停止滾動,然後繼續不觸發scrollToTopOrBottom()
功能滾動。
的問題是,事件瀏覽器之間的incosistent:
在某些瀏覽器(傲遊和Android),在touchend
事件工作按預期,但Opera移動和Chrome中,touchend
事件沒有做火災。對此的解釋是touchend
doesn't fires because touchcancel
has been fired before。
我已經試過這
$(document).on('touchmove',function(e){
e.preventDefault();
});
,併成功地避免touchcancel
觸發,但不幸也避免滾動的自然行爲。
有誰知道這是如何實現的?我完全沒有想法。
謝謝。
這對我有用。 –
工作完美!謝謝 – Logic1
試圖讓所有東西在android 4.4上正常工作,這是唯一有幫助的!謝謝! – mls3590712