繁体   English   中英

function scrollPage() 在移动设备上不起作用

[英]function scrollPage() does not work on mobile devices

我在 javascript 中有一个 function 需要上下滚动页面,直到用户按下按钮将其禁用。 这是我当前的 function:

var scrollDirection = 1;
function scrollPage() {
  if (isScrollMode) {
    window.scrollBy(0, scrollDirection); // horizontal and vertical scroll increments
    scrolldelay = setTimeout('scrollPage()', 50); // scrolls every 50 milliseconds
    if (window.pageYOffset == 0) {
      scrollDirection = 1;
    } else if (window.pageYOffset == document.body.scrollHeight - window.innerHeight) {
      scrollDirection = -1;
    }
  }
}

到目前为止,此方法适用于计算机,但是,当我在手机上的 google chrome web 浏览器上测试此 function 时,它只会下降而不会上升。 一旦到达页面末尾,它就会停留在那里。 谁能告诉我为什么? 感谢您的帮助!

这是因为window.pageYOffset返回一个浮点数,在我的例子中78.4000015258789document.body.scrollHeight - window.innerHeight返回一个 integer,在我的例子中是79 然后, (78.4000015258789 == 79) = false

您可以更改的是将 1 添加到window.pageYOffset以获得79.4并检查window.pageYOffset > (document.body.scrollHeight - window.innerHeight)

这是编辑后的代码(必须有效):

 var scrollspeed = 10; var scrollDirection = scrollspeed; function scrollPage() { if (isScrollMode) { window.scrollBy(0, scrollDirection); // horizontal and vertical scroll increments scrolldelay = setTimeout("scrollPage()", 50); // scrolls every 50 milliseconds if (window.pageYOffset == 0) { scrollDirection = scrollspeed; } else if ( window.pageYOffset + 1 > document.body.scrollHeight - window.innerHeight ) { //window.pageYOffset return a float scroll y value, for exemple in my case 78.4000015258789; //We add +1 to obtain 79.4 //(document.body.scrollHeight - window.innerHeight) return a interger of 79 scrollDirection = -scrollspeed; } } } let isScrollMode = true; scrollPage();
 <p>Lorem</p> <p>Lorem</p> <p>Lorem</p> <p>Lorem</p> <p>Lorem</p> <p>Lorem</p> <p>Lorem</p> <p>Lorem</p> <p>Lorem</p> <p>Lorem</p> <p>Lorem</p> <p>Lorem</p> <p>Lorem</p> <p>Lorem</p> <p>Lorem</p> <p>Lorem</p> <p>Lorem</p> <p>Lorem</p> <p>Lorem</p> <p>Lorem</p> <p>Lorem</p> <p>Lorem</p> <p>Lorem</p> <p>Lorem</p>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM