2014-10-05 1 views
0

Я пытаюсь получить этот jQuery правильно, но я просто не могу понять, как это правильно. То, что я пытаюсь сделать, - это прокрутить список пользователей, и когда они перейдут к соответствующему пределу пикселя, произойдет jQuery fadein и animate, создав классный небольшой эффект. Я пытался использовать fadeIn, но он не работал одновременно, поэтому я использую css. Проблема в том, что пока я работаю, когда я продолжаю прокручивать, изображения продолжают мигать и гаснуть.jQuery прокрутка к fadein и анимация одновременно на div

Вот мой код.

$(window).bind("scroll", function() { 
    if ($(this).scrollTop() > 560) { 
     $('#subOverlay').css({'display':'block', 'opacity':'0'}) 
     .animate({'opacity':'1','left':'25%'}, 1500); 
    } else { 
     $("#subOverlay").stop().fadeOut(); 
    } 
}); 

Вы заметите в своем коде выше, я хочу, чтобы пользователю прокручивать до 560 пикселей, а затем эффекты работают одновременно. Я попытался исправить это «мерцание», но я просто не могу его получить. Я попытался использовать .fadeIn(1000).animate({'opacity':'1','left':'25%'}, 1500);, но он не создает эффект, который я пытаюсь достичь одновременно.

Для примера того, о чем я говорю, см. JSFIDDLE. Вы можете помочь? Или указать мне в правильном направлении? Спасибо.

+0

Что случилось с выше код? (кроме того, что он загрязняет событие прокрутки?) –

+0

Пожалуйста, напишите скрипт, чтобы мы могли лучше понять вашу проблему. –

+0

Хорошо, без проблем, я обновлю это через 1 минуту. Спасибо. – ValleyDigital

ответ

0

По возможности старайтесь избегать использования jQuery для работы с CSS. Это включает в себя css, animate, fadeOut и т.д. Вот пример, где JavaScript только переключает классы:

http://jsfiddle.net/05Leto4e/1/

+0

Благодарю вас за помощь. Это сработает. Если вы знаете, как создать это без использования перехода CSS, это было бы еще лучше. FadeIn и анимация, которая работает одновременно? В противном случае мне придется учитывать этот «переход» с поддержкой кросс-браузера, не так ли? – ValleyDigital

+0

Да, код, который я разместил, поможет, даже если вы хотите использовать 'animate' и' fadeIn'. Первоначальная проблема заключается в том, что первая часть оператора if выполняется сотни раз в секунду, как только они прокручиваются за 560. Вам нужна переменная 'overlay_hidden', чтобы убедиться, что вы запускаете ее только один раз. – andyvanee