Lui*_*sus 11 javascript jquery android scroll touch
我正在尝试为移动设备创建一个检测scrollTop位置的页面,如果scrollTop低于文档高度的一半则滚动到页面顶部,如果不是,则滚动到底部.
我通过使用这个实现了:
var ScrollTimeout;
$(window).on('scroll',function(){
clearTimeout(ScrollTimeout);
ScrollTimeout = setTimeout(scrollToTopOrBottom,200);
});
Run Code Online (Sandbox Code Playgroud)
问题是当用户停止滚动但手指仍在屏幕上时,超时会触发.
然后我参加了这个touchend活动,这很棒.
$(document).on('touchend',function(){
scrollToTop();
});
Run Code Online (Sandbox Code Playgroud)
用户可以停止滚动(手指仍在屏幕上),然后继续滚动而不触发该scrollToTopOrBottom()功能.
问题是,该事件在浏览器之间是不存在的:
在某些浏览器(Maxthon和Android)中,该touchend事件按预期工作,但在Opera Mobile和Chrome中,touchend事件不会触发.对此的解释是,touchend因为touchcancel之前被解雇了所以不会触发.
我试过这个
$(document).on('touchmove',function(e){
e.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)
并成功地避免了触发touchcancel,但不幸的是也避免了滚动的自然行为.
有谁知道如何实现这一目标?我完全没有想法.
谢谢.
don*_*ok0 13
尝试在touchend和touchcancel上附加监听器.
$(document).on('touchend touchcancel', function() {
doSomthing();
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13472 次 |
| 最近记录: |