从变量中获取静态值(滚动函数)

时间:2013-12-27 09:39:00

标签: javascript jquery

我有一个“跟随滚动”功能,但我希望它在返回某个点时关闭。我的代码如下:

    scrollSidebar: function(scroll) {
        var elemPos = $('#bestvideos-2').offset().top,
            scroll2 = scroll;

        if(scroll2 >= elemPos) {
            $('#bestvideos-2').animate({
                'margin-top':(scroll - 315)+'px'
            },0);
        } else {
            $('#bestvideos-2').css('margin-top','0');
        }
    }

$(window).scroll(function() {
    var scrollHeight = $(window).scrollTop();
    Scroll.scrollSidebar(scrollHeight);
})

问题是 - 每次我起床,它都会上升,而不是跟随滚动。我在想的是在某处存储变量elemPos并保持静态(现在每次滚动时它都会改变)。

我该怎么办?

1 个答案:

答案 0 :(得分:1)

将值传递给scrollSidebar函数 - 确保在dom ready上执行var elemPos = $('#bestvideos-2').offset().top

scrollSidebar: function (elemPos, scroll) {
    var scroll2 = scroll;

    if (scroll2 >= elemPos) {
        $('#bestvideos-2').animate({
            'margin-top': (scroll - 315) + 'px'
        }, 0);
    } else {
        $('#bestvideos-2').css('margin-top', '0');
    }
}

var elemPos = $('#bestvideos-2').offset().top
$(window).scroll(function () {
    var scrollHeight = $(window).scrollTop();
    Scroll.scrollSidebar(elemPos, scrollHeight);
})