使用自动滚动进行滚动时页面循环时出现小故障

时间:2020-02-12 08:03:34

标签: javascript

我正在执行自动滚动,它将检测鼠标滚轮的向上或向下移动,并且它将继续自行滚动,但是当到达顶部时,页面应跳到底部,并继续滚动到顶部反之亦然。但是当它到达顶部或底部时会卡住并出现故障。

这是我的循环代码

 $(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;
});

我尝试在代码段,codepen或jsfiddle上执行此操作,但是它不起作用。 供参考,我在这里http://block-s.net/caps/

1 个答案:

答案 0 :(得分:0)

请记录lastScrollTopcurrentpos的滚动事件。

在这种情况下,如果您遇到问题if if (st > lastScrollTop) =>并循环到页面底部或页面顶部,则会看到问题。

希望对您有帮助。