JavaScript-禁用移动设备上的页面刷新
我正在尝试通过触摸滚动事件禁用移动设备上的页面刷新。 通过在线搜索,我发现了以下方法:JavaScript-禁用移动设备上的页面刷新,javascript,scroll,Javascript,Scroll,我正在尝试通过触摸滚动事件禁用移动设备上的页面刷新。 通过在线搜索,我发现了以下方法: /* w = flag determining if pageYOffset was 0 before trying scroll below it h = last pageYOffset */ function disablePageRefreshFacility() { let w,h=0; document.addEventListener('touchstart',function(
/*
w = flag determining if pageYOffset was 0 before trying scroll below it
h = last pageYOffset
*/
function disablePageRefreshFacility() {
let w,h=0;
document.addEventListener('touchstart',function(e) {
if(e.touches.length!=1) return;
h=e.touches[0].clientY; w=window.pageYOffset===0;
// testLabel is DOM element just to show the current pageYOffset - for test
testLabel.innerHTML=window.pageYOffset;
},false);
document.addEventListener('touchmove',function(e) {
let y=e.touches[0].clientY,d=y-h; h=y;
if(w) { w=0; if(d>0) return e.preventDefault(); }
if(window.pageYOffset===0&&d>0) return e.preventDefault();
},false);
}
该页面只有testLabel DIV和document.body.style.height=“60000px”用于测试
问题:- 在页面未缩放时测试pageYOffset的值,pageYOffset会根据页面获取滚动值
- 当页面缩放时,测试pageYOffset的值,该值保持为0,直到某个滚动点,当前我不知道如何检测。
- 删除
行使正文不可滚动,然后在缩放时,滚动页面不会更新pageYOffset的值document.body.style.height=“60000px”
任何替代方案都能帮上大忙,尽管我想知道为什么touchmove事件没有触发,尽管页面被“滚动”(虽然被放大)。尝试过,但仍然无法工作,我仍然可以进行页面刷新…-可以在www.efsdk.com/test/pg_rf.htm中看到运行示例-在Android浏览器上测试…尝试在
位置上更改:已修复代码>还不起作用,请参见此页面-www.efsdk.com/test/pg_rf2.html如果您将相同的应用于html
对象,则它应该起作用。已更改上述代码。已尝试,但仍无法工作:(请参阅此页-www.efsdk.com/test/pg_rf3.htm
body {
overscroll-behavior: contain;
}