2013-07-18 3 views
0

나는 다음 코드를 가지고있다. 작동하지만, 자바 스크립트 함수로 "자동화"하고 싶다. 그래서 반복해서 쓰지 않아도된다.이 jQuery 스 니펫에서 Javascript 함수를 만드시겠습니까?

$("#portfolio").waypoint(function() { 

    $('.portfolio-item').eq(0).css("animation-delay","0.0s"); 
    $('.portfolio-item').eq(1).css("animation-delay","0.3s"); 
    $('.portfolio-item').eq(2).css("animation-delay","0.6s"); 
    $('.portfolio-item').eq(3).css("animation-delay","0.9s"); 
    $('.portfolio-item').eq(4).css("animation-delay","1.2s"); 
    $('.portfolio-item').eq(5).css("animation-delay","1.5s"); 
    $('.portfolio-item').eq(6).css("animation-delay","1.8s"); 
    $('.portfolio-item').eq(7).css("animation-delay","2.1s"); 
    $('.portfolio-item').eq(8).css("animation-delay","2.4s"); 

    $('.portfolio-item').addClass('animated fadeInUp'); 

}, { offset: 400}); 

고마워요!

+0

당신이 필요로 한 것을 시도한 당신의 자신의 부호를 배치하십시오. –

+0

그냥 함수 정의 안에 넣으십시오. 무엇이 문제입니까? – Barmar

+0

반복되는 모든 애니메이션 지연 코드에 루프를 사용하십시오. – Barmar

답변

1

이 SidCool의 대답에 대한 대안이 eq 사용 방지하기 위해 jQuery를 each을 사용하는 것입니다 : 비록

$('#portfolio').waypoint(function(){ 
    var $items=$('.portfolio-item'); 
    $items.each(function(i){ 
     $(this).css('animation-delay', (i*0.3)+"s"); 
    }); 
    $items.addClass('animated fadeInUp'); 
}, {offset: 400}); 

을, I 단지 그가 일찍 그것을 제안했다는 것을 깨달았다. 그에게 신용 :

+0

그게 다야, 둘 다 주셔서 감사합니다 :) – user2556272

1

이 작동하는지 모르겠지만, 시도주는 가치가되지 않음 :

$("#portfolio").waypoint(function() { 
    for(var i=0;i<9;i++){ 
      var j = (i*0.3)+"s"; 
      $('.portfolio-item').eq(i).css("animation-delay",j); 
    } 
    $('.portfolio-item').addClass('animated fadeInUp'); 

}, { offset: 400}); 
+0

감사합니다. – user2556272

+0

나는 기쁩니다! jQuery의 각 함수를 사용하여 동적으로 만들 수 있습니다. – Sid

+0

그래, 생각해 봤지만 사용법은 확실하지 않았다. 잠시 시간이 있다면 샘플을 제공해 줄 수 있니? – user2556272

관련 문제