Javascript 将变量传递到滚动函数
我试图使一个元素在滚动过去后“粘住”(并且在滚动到上面后取消粘住) 这几乎可以正常工作,但是我在设置元素的位置(在代码中称为Javascript 将变量传递到滚动函数,javascript,jquery,Javascript,Jquery,我试图使一个元素在滚动过去后“粘住”(并且在滚动到上面后取消粘住) 这几乎可以正常工作,但是我在设置元素的位置(在代码中称为偏移量)时遇到了问题,无法将其保持在初始状态 我已经尝试在窗口设置偏移量。准备好了,然后在窗口中计算元素是粘的还是不粘的。滚动,但我只有在尝试将值传递到窗口时才得到[对象对象],该值应该是int。滚动函数 代码笔: 代码: $(窗口).ready(函数(){ var ele=$('.sidebar__ad'); 变量窗口=$('body'); var offset=ele.
偏移量
)时遇到了问题,无法将其保持在初始状态
我已经尝试在窗口设置偏移量。准备好了
,然后在窗口中计算元素是粘的还是不粘的。滚动
,但我只有在尝试将值传递到窗口时才得到[对象对象]
,该值应该是int
。滚动
函数
代码笔:
代码:
$(窗口).ready(函数(){
var ele=$('.sidebar__ad');
变量窗口=$('body');
var offset=ele.offset().top window.offset().top;
log('Offset='+Offset);
});
$(窗口).on('scroll',函数(偏移量){
var scrollTop=$(窗口).scrollTop();
如果(滚动顶部>偏移){
ele.addClass('sidebar_uuad--sticky');
}
console.log(scrollTop+'&'+偏移量);
如果(滚动顶部<偏移量){
console.log(scrollTop+'&'+偏移量);
ele.removeClass('sidebar_uuad--sticky');
}
});
如何在页面加载时保留初始
偏移量
作为值,然后在窗口中使用它。滚动?
不是对您问题的回答,但如果您的浏览器目标支持,您可以使用它。或者你可以为那些本机不支持它的浏览器添加一个。我从来没有这样做过,但可能是会话存储或本地存储?
$(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');
}
});