我创建了一个响应式网站,用户可以将其添加到主屏幕。在平板电脑和手机上,如果当用户滚动到页面顶部或页面底部时屏幕不会那么做,如果你滚动得太远或太远,你会看到一点在页面后面的灰色和它快速回来。
我知道在身体上使用'preventDefault'会使这种情况发生,但是现在这样做会阻止用户滚动。
这是javascript:
$(document).ready(function(){
document.ontouchmove = function(e){e.preventDefault();}
});
这是html调用:
<body ontouchmove="touchMove(event)">
答案 0 :(得分:0)
我建议您捕获事件并且只调用preventDefault它是在某个视口/ scrollTop位置..(将尽快尝试添加代码)。
这可以帮助您获得当前文档的滚动顶部位置
function getScrollTop(){
if(typeof pageYOffset!= 'undefined'){
//most browsers
return pageYOffset;
}
else{
var B= document.body; //IE 'quirks'
var D= document.documentElement; //IE with doctype
D= (D.clientHeight)? D: B;
return D.scrollTop;
}
}
仅当scrollTop位于顶部时才调用preventDefault ...
$(document).ready(function(){
document.ontouchmove = function(e){ if (getScrollTop() != document.scrollTop)
{
e.preventDefault();
}
}
});