2009-09-22 3 views
0

div 집합을 차례대로 페이드 인하려고합니다. 나는 jquery가 제공하는 단순한 For Each 함수를 사용할 수 있다고 생각했다.jquery 페이딩 시퀀스

$('#menu_activate').click(function(){ 
    $('div.section').each(function(i){ 
    $(this).fadeToggle();  
    }); 
}); 

이것에 대해 좋은 것은 그것이 div의 반복 않으며 내가 활성화 버튼을 클릭하면 그들 모두가 페이드 인 것입니다 다음과 같이 내 코드입니다. 문제는 페이드 인하는 요소간에 지연이 없다는 것입니다.

아이디어가 있으십니까? 시간 제한 기능을 사용하지 않으려 고 시도했습니다 ...

또한 fadeToggle은 예상대로 작동하는 사용자 정의 jquery 함수입니다.

미리 감사드립니다. 남자 이름.

+0

나는 timeout 함수를 사용하여'setTimeout'을 의미한다. 그것이 당신이하려는 일을하는 일반적으로 인정되는 방법입니다. –

+0

그 중 하나를 주셔서 감사합니다 ... 예, 나는이 일을하는 일반적인 방법이라고 생각했지만, setTimeout 함수보다 조금 더 필요했습니다. – Tisch

답변

0

최종 답변! "이"그래서 내가 그들 개인 ID 년대를 제공했다

var myTimeout = 0; 
    var myIncrement = 300; // Wait 300ms between each div 
    $('#menu_activate').click(function(){ 
    $('div.section').each(function(i){ 
     setTimeout(function() { $('#section_'+i).show(); },myTimeout); 
     myTimeout += myIncrement;  
    }); 
    }); 

그것은 내가 그것을했을 때 생각되지 않았다 증가했다 ... 그리고 아담의 대답에, 그것은을 가진 DIV 년대에 언급되지 않았다 대신에 그것을 반복합니다. 그래서 아담을 닫아라. 매우 도움이되어 매우 인상적이고 감사합니다!

0
$('#menu_activate').click(function(){ 
    $('div.section').each(function(i){ 
     $(this).queue(function() { 
      $(this).fadeToggle(); 
      $(this).dequeue(); 
     }); 
    }); 
}); 
3

당신은 아마 setTimeout 원하고, 당신은 제한 시간 각 사업부와 함께 증가하고 싶다. 여기서 문제는 fadeToggle이 지연없이 곧바로 호출된다는 것입니다. 그러므로, 당신은 직접 자신을 소개해야합니다. 당신이 할 수있는 몇 가지 방법이있다, 여기 하나 :

var myTimeout = 0; 
var myIncrement = 300; // Wait 300ms between each div 
$('#menu_activate').click(function(){ 
    $('div.section').each(function(i){ 
    setTimeout(function() { $(this).fadeToggle() },myTimeout); 
    myTimeout += myIncrement;  
    }); 
}); 

는 기본적으로 각 사업부로 증가 타임 아웃 이후에 발생하는 fadeToggle의를 설정합니다.

+0

+1 나에게서 - 우아한 –

+0

고마워요! 매우 우아합니다. 작동 시키려면 약간 조정해야했지만, 올바른 방향으로 나를 보냈습니다. 감사 – Tisch