Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将变量传递到滚动函数_Javascript_Jquery - Fatal编程技术网

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');
        }
    });