2016-01-24 4 views
0

Создание заголовка, который изменяется после прокрутки, что у меня есть, когда я прокручиваю вниз, а затем проваливается, когда я прокручиваю весь путь до вершины и пытаюсь получить заголовок, чтобы получить больше , Иногда это изменяет размер, и иногда это не будет; и это никогда не мгновенно.

Вот код:

$(window).scroll(function() { 
if ($(document).scrollTop() >= 50) { 
    $('.header').animate({ 
     'padding': 0 
    }, 300); 
} else { 
    $('.header').animate({ 
     'padding-top': 15, 
     'padding-right': 7, 
     'padding-bottom': 15, 
     'padding-left': 25 
    }, 300); 
}}); 

Заранее спасибо

+0

Необходимо понять, что событие прокрутки срабатывает много раз в секунду. Вы говорите элементу оживлять снова и снова – charlietfl

+1

@charlietfl Я могу понять это, будучи так уволен так много раз. Для этого нужно установить флаг. Проверьте мой ответ. Личный опыт. –

+0

Это работает Райан? Вы можете прокомментировать здесь .. ':)' –

ответ

1

Вы должны иметь флаг для этого, который проверяет, имеет ли то же самое было сделано или нет. В следующем коде могут быть сбои, но нужно настроить его в правильной среде. При необходимости измените первую строку на true.

var flag = false; 
$(window).scroll(function() { 
    if ($(document).scrollTop() >= 50) { 
    if (flag) { 
     $('.header').animate({ 
     'padding': 0 
     }, 300); 
     flag = false; 
    } 
    } else { 
    if (!flag) { 
     $('.header').animate({ 
     'padding-top': 15, 
     'padding-right': 7, 
     'padding-bottom': 15, 
     'padding-left': 25 
     }, 300); 
     flag = true; 
    } 
    } 
}); 

Установка этого flag здесь, убедитесь, что функция получает выполняется только один раз, во время своего диапазона.

Смежные вопросы