2014-02-13 7 views
2

나는 텍스트 배열을 페이드 아웃하는 것을 만들고있다.jQuery fadeIn() 및 fadeOut()을 사용하는 올바른 방법은 무엇입니까?

이 지금까지 내 작품 : 나는에 밖으로 텍스트를 퇴색하고있어,하지만 난 그게 렌더링 볼 때 타이밍이 꺼져 http://jsfiddle.net/9j7U6/

.

$("#wantPlaceholder").fadeOut().html(wants[i]).fadeIn(2000).delay(3000); 

올바른 방법은 무엇입니까?

+1

['.fadeIn()'] (http://api.jquery.com/fadein/) . ['.fadeOut()'] (http://api.jquery.com/fadeout/). –

+0

문서를 읽었습니까? 꽤 명확해야합니다 ... – Madbreaks

+0

달성하려는 것은 무엇입니까? 페이드 (fades)가 작동하므로 타이밍을 조정해야합니다. – helion3

답변

4

콜백을 사용하십시오. 애니메이션이 완료되면 콜백이 호출됩니다. 다음 코드는 요소를 페이드 아웃합니다. 완전히 사라지면 HTML이 수정 된 다음 다시 사라집니다.

$("#wantPlaceholder").fadeOut(1000, function(){ 
    $(this).html(wants[i]); 
    $(this).fadeIn(2000); 
}); 

편집 : 음, 루프가 something like this 할 수있다 :

(function myLoop(items, index) { 
    index = (items.hasOwnProperty(index) ? index : 0); 
    $("#wantPlaceholder").delay(3000).fadeOut(1000, function() { 
     $(this).html(items[index]); 
     $(this).fadeIn(1000, function() { 
      myLoop(items, index + 1); 
     }); 
    }); 
}(wants, 0)); 
+0

+1을 연습 해보십시오. 질문에있는 것과 같이 setInterval을 사용하여 바이올린을 만드십시오 그리고 그것은 당신 것입니다 – quelquecosa

1

먼저 텍스트가 페이드 아웃() 핸들러에서 변경해야

function rotateWants() { 
    var i = 0; 
    var wantsLength = wants.length; 

    function fade() { 
     $("#wantPlaceholder").delay(5000).fadeOut(function() { 
      $(this).html(wants[i]); 
      i++; 
      if (i >= wantsLength) { 
       i = 0 
      }; 
     }).fadeIn(2000, fade); 
    } 

    fade(); 
} 

데모 : Fiddle

+0

Arun, 우리는 오프 사이트에서 이야기 할 수 있습니까? isaacmalca1 * at * gmail, 나에게 줄을 보내 pls. – quelquecosa