Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用自动滚动滚动时页面循环时出现故障_Javascript - Fatal编程技术网

Javascript 使用自动滚动滚动时页面循环时出现故障

Javascript 使用自动滚动滚动时页面循环时出现故障,javascript,Javascript,我正在做自动滚动,它会检测到鼠标滚轮上下移动,它会继续自己滚动,但当它到达顶部时,页面会跳到底部,并继续滚动到顶部,反之亦然。但当它到达顶部或底部时,就会卡住并发出毛刺 这是我的循环代码 $(window).scroll(function() { if($(window).scrollTop() + $(window).height() > $(document).height() - 1) { $(window).scrollTop(0) }

我正在做自动滚动,它会检测到鼠标滚轮上下移动,它会继续自己滚动,但当它到达顶部时,页面会跳到底部,并继续滚动到顶部,反之亦然。但当它到达顶部或底部时,就会卡住并发出毛刺

这是我的循环代码

 $(window).scroll(function() {   
    if($(window).scrollTop() + $(window).height() > $(document).height() - 1) {
       $(window).scrollTop(0)
    }
    else if ( $(window).scrollTop() == 0 ) {
        $(window).scrollTop( $(document).height() );
    }    
});
这是用于自动滚动的东西

var lastScrollTop = 0,
 currentpos = 0;


$(window).scroll(function(event){
   var st = $(this).scrollTop();
   if (st > lastScrollTop){
       // downscroll code
         currentpos = window.pageYOffset + 1
    window.scroll(0, currentpos)
   } else {
      // upscroll code
        currentpos = window.pageYOffset - 1
    window.scroll(0, currentpos)
   }
   lastScrollTop = st;
});
我试着在snippet、codepen或jsfiddle上做,但没有成功。
作为参考,我在这里做这件事

请记录您的滚动事件

当它运行到页面的底部或顶部时,您会看到问题,该页面会向上循环,这是因为您的
if
条件
if(st>lastcrollptop)
=>在这种情况下不清楚


希望对您有所帮助。

我刚刚注意到,每当它通过循环时,它都会不断向上滚动。问题在于自动滚动代码
var st=$(this.scrollTop()因为一旦它通过一个新循环,它将继续向上滚动。因此
st
将始终大于
lastScrollTop