所以我有一个垂直滚动网站,上面有“页面”。我希望浏览器在用户停止滚动时对齐最可查看的页面。
我有一种方法可以找到哪个元素是 inview,并且使用一个简单的插件我有一个在滚动停止时触发的事件。
我遇到的问题是如何正确利用它。
我正在为浏览器设置动画以在滚动停止时滚动到 inview 页面的顶部。然而,这会启动另一个滚动并再次触发所有内容,这会导致一些奇怪的持续滚动错误并导致它在页面周围跳跃。
有没有人有任何不同的实现方式来避免循环的想法?我现在真的很困。
代码如下。并感谢您的任何建议。
$(window).bind('scrollstop', function(e){
//this grabs the ID of the div containing my h1 element. This is how I decide which 'page' is inview
var inview = '#' + $('.section-header:in-viewport:first').parent().parent().attr('id');
//then I grab the distance from the top, so that it can be scrolled to
var this_pos = $(inview).offset().top;
//finally I animate the page to scroll to the top of the inview element.
$('html > body').animate({'scrollTop' : this_pos}, 200).delay(1000);
});