2013-09-07 3 views
0

이 간단한 코드를 작성하여 내 웹 사이트의 기본 슬라이드 쇼를 만들었습니다. 이 코드는 잠시 동안 제대로 작동하지만 오작동하기 시작한 후에 이미지가 적절하게로드되지 않고 동일한 이미지가 갑자기 튀어 나오고 사라지고 천천히 다시 나타납니다. 는 그래도 뭔가는의 setTimeout 타이밍 가지 잘못 될 수 있지만, 나는 그것을 가진을 많이 해본 적이 그것은 내 문제가 해결되지 않은 :잠시 후 javascript 슬라이드 쇼가 오작동합니다.

var x = 1; 
    function F() { 
     $('#Left').html("<img src='Images/" + x + ".jpg' />").fadeOut(0).fadeIn(1000).delay(5000).fadeOut(1000); 
     if (x < 3) { x++;} 
     else { x = 1; } 
     setTimeout("F()", 7000); 
    } 

내 질문은 간단한 코드와 방법에있어 문제점이 될 수 무엇인가 문제를 해결하거나 개선 할 수 있습니까?

+1

흠 ...이게 문제라면, 나는 문자열 "F()"를 사용하는 대신'setTimeout (F, 7000)'을 사용하는 것이 좋습니다. – rossipedia

+1

또한'fadeOut (0)'대신'hide()'를 사용할 수 있습니다. – rossipedia

+0

감사하지만 "F()"는 문제가되지 않습니다. F 또는 "F"로 할 때, 루프의 시간 간격과 관련된 것이지만 어떻게 해결해야하는지 모르겠습니다. –

답변

1

페이드 작업에 문제가있을 수 있습니다. 정확히 7 초가 걸리지는 않지만 타임 아웃은 7 초로 예정되어 있으므로 시간이 지남에 따라 두 줄은 제대로 정렬되지 않습니다. 완료 기능으로 마지막 페이드가 끝나면 다음 애니메이션을 시작하여 누적 오류없이 완벽하게 정렬 할 수 있습니다.

var x = 1; 
    function F() { 
     $('#Left').html("<img src='Images/" + x + ".jpg' />") 
      .fadeOut(0) 
      .fadeIn(1000) 
      .delay(5000) 
      .fadeOut(1000, F); 
     if (x < 3) { x++;} 
     else { x = 1; } 
    } 
+0

감사합니다. 완벽하게 작동했습니다. 다른 질문이 있습니다. 이미지를 다른 것으로 변색시킬 수있는 방법을 알고 있습니까? FadeTo하지만 첫 번째 이미지가 희미 해지면 슬라이드 쇼가 중단되었습니다. –

+0

@FastLast - 하나의 이미지가 페이드 인되는 동안 다른 이미지가 페이드 인되는 경우, 일반적인 방법은 두 이미지를 서로 겹치게하고 하나를 페이드 아웃하여 페이드 인하는 것입니다. – jfriend00

+0

고맙습니다 알았다. –

관련 문제