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