2014-12-22 3 views
3

Я использую простой код для отображения элемента при прокрутке страницы до определенной точки. Код технически работает, но он сильно задерживается. У меня был код console.log некоторые значения отладки (позиция прокрутки). Я обнаружил, что если оператор не не работать, пока после того, как прокрутка была остановлена ​​(или когда я увидел console.log «догнать»):Почему я получаю задержку, когда я использую scroll() в jquery?

$(window).scroll(function(){ 
    if($(window).scrollTop() >= 350) { 
     $('#logo').animate({'opacity':'1'}); 
    } else { 
     $('#logo').animate({'opacity':'0'}); 
    } 
}); 

вот jsfiddel: http://jsfiddle.net/nzcxwdmx/1/

You» Если вы подождете достаточно долго, появятся слова «логотип здесь». чем дальше вы прокрутите страницу до 350, тем дольше это займет.

+0

По умолчанию значение анимации длительность (по умолчанию: 400). Попробуйте сыграть со значениями по умолчанию. –

ответ

0

вы используете defaul анимировать значение времени instade его использовать значение времени из милиции

fiddle

Пример кода

$(window).scroll(function(){ 
    var spos = $(window).scrollTop(); 
    $('#scroll').text(spos); 
    if(spos >= 350) { 
     $('#logo').animate({'opacity':'1'},200); 
    } else { 
     $('#logo').animate({'opacity':'0'},200); 
    } 
}); 
+0

Это не время анимации, это проблема. Когда вы прокрутите страницу до 350, для начала анимации потребуется много времени. Мне нужно это, чтобы показать, как только оно достигнет 351 или больше, и спрячьтесь, когда он достигнет 350 или меньше. Опять же, он скрывает и демонстрирует при этих значениях, но для этого требуется слишком много времени. – dcp3450

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