jQuery - переменная не меняется - PullRequest
0 голосов
/ 08 марта 2020
$(window).on("scroll", function() {

    var fixed = false;
    var defaultHeight = 0;

    if ($(window).scrollTop() > $(".link_ad").offset().top) {
        if (fixed == false) {
            defaultHeight = $(".link_ad").offset().top;
            $(".link_ad").css({"position": "fixed", "top": "20px"});
            fixed = true;
        }           
    }

    console.log(defaultHeight);

    if ($(window).scrollTop() < defaultHeight) {
        if (fixed == true) {
            $(".link_ad").css("position", "static");
            fixed = false;
        }
    }
});

Я пытаюсь исправить блок при прокрутке, если пользователь прокручивает страницу ниже верхнего смещения блока, а если он прокручивает страницу выше - вернуть блок в положение, в котором он находился до прокрутки. Я не проверяю только смещение прокрутки, потому что у меня есть выпадающее меню над этим блоком, и его верхнее смещение изменяется. Но когда defaultHeight изменяется, когда прокрутка продолжается, defaultHeight снова равно 0. Я думаю, это потому, что эта переменная является глобальной в этой функции, и мне нужно ссылаться на нее по-другому. Пожалуйста, помогите мне.

...