我认为展示我的问题的最简单方法是缩短codepen。
(抱歉,我无法制作片段。我将完全相同的代码从codepen复制到了SO片段,但它没有以相同的方式执行。)
但是让我们来解决问题:
所以你可以在我的codepen上看到"最明显的" div在没有滚动的情况下在一秒钟后居中
滚动到最底部,页脚应该出现,并且它不在前一个div的中心。我用那段代码做到了:
if ($(window).scrollTop() >= $(document).height() - $(window).height() - 20) {
$("footer").addClass("footerVis");
$("html, body").stop(true);
} else {
$("footer").removeClass("footerVis");
}
我不确定是否有更好的方法可以做到这一点,但我只是使用.stop()
来停止前一个div的滚动动画。然而它起作用,但就像每一秒都滚动一点。
我想这是因为JS之前的setTimeout(function() {...}, 1000)
在一秒钟之后开始滚动动画。我不能解释为什么它每隔一秒滚动一下......
有谁知道我怎么解决这个问题?感谢您的帮助!