2013-12-12 3 views
0

Хорошо, у меня есть этот бит скрипта, который добавляет имя класса к определенным элементам, когда они становятся видимыми.Небольшая задержка между addClass и несколькими элементами

var t = $("#div").offset().top; 

$(document).scroll(function(){ 
    if($(this).scrollTop() > t) 
    { 
     $('.image').addClass('img-vis'); 
    } 
}); 

Есть 12 элементов с именем класса lazy, и я хочу небольшую задержку между каждым добавлением класса.

+1

"имя класса ленивым" ленивый или изображение? –

+0

[http://luis-almeida.github.io/unveil/](unveil) - ваш друг, на всякий случай. – moonwave99

+0

К сожалению, имя класса image – Alex

ответ

4

Попробуйте это:

$('.image').each(function (i) { 
    $(this).delay(i*1000).queue(function (next) { 
     $(this).addClass('img-vis'); 
     next(); //used just to dequeue 
    }); 
}); 
+0

Хороший подход. Upvoted. – melancia

+0

работает красиво, спасибо за это! : D – Alex

0

вы имеете в виду что-то вроде этого: (т. Е 1000 миллисекунд)

$(document).scroll(function(){ 
    if($(this).scrollTop() > t) 
    { 
     setTimeout(addImgVis, 1000); 
    } 
}); 

function addImgVis(){ 
    $('.image').addClass('img-vis'); 
} 

что добавит класс 1 секунду после того, как он выполняет ж/в Уре функции прокрутки.

+1

Он будет добавлять класс ко всем изображениям одновременно, снова и снова. Ваш селектор возвращает все изображения с помощью класса = image. – melancia

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