我正在尝试制作一个元素"坚持"一旦它滚动过去(并且一旦它滚动到上面就解开)。
这几乎可行但是我在设置元素的位置(在我的代码中称为offset
)时无法保持其初始状态。
我试图在window.ready
处设置偏移量,然后在window.scroll
中计算是否使元素变粘或不粘,但我尝试时只得到[object Object]
将值int
传递给window.scroll
函数
Codepen:http://codepen.io/anon/pen/WRyKBY
代码:
$(window).ready(function() {
var ele = $('.sidebar__ad');
var window = $('body');
var offset = ele.offset().top-window.offset().top;
console.log('Offset = ' + offset);
});
$(window).on('scroll', function(offset) {
var scrollTop = $(window).scrollTop();
if (scrollTop > offset) {
ele.addClass('sidebar__ad--sticky');
}
console.log(scrollTop + ' & ' + offset);
if (scrollTop < offset) {
console.log(scrollTop + ' & ' + offset);
ele.removeClass('sidebar__ad--sticky');
}
});
如何在页面加载时保留初始offset
作为值,然后在window.scroll
上使用它?