Tomek Buszewski
Tomek Buszewski

Reputation: 7955

Get static value from variable (scroll function)

I have a "follow scroll" function, but I want it to turn off when it returns to a certain point. My code is as follows:

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

The problem is - every time I get up, it goes way up, not following scroll. What I'm thinking is storing a variable elemPos somewhere and keep it static (now it's changing each time I scroll).

What can I do with this?

Upvotes: 0

Views: 160

Answers (1)

Arun P Johny
Arun P Johny

Reputation: 388406

Pass the value to the scrollSidebar function - make sure that the var elemPos = $('#bestvideos-2').offset().top is executed on dom ready

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

Upvotes: 1

Related Questions