2014-11-25 4 views
0

clearInterval과 관련된 모든 게시물을 읽었지만 어떻게 든 작동하지 않게됩니다 ... 스크립트가 수행하는 작업은 ". xmas-title "이미지를 변경합니다. 그리고 마우스를 클릭하면 간격이 지워집니다.그냥 clearInterval() 함수를 만들 수 없습니다.

var animation; 
$(".xmas-title").delay(4000).fadeIn(400, function(){ 
    bear_shake(true); 
}); 

$(".xmas-more").delay(4200).fadeIn(400, function(){ 
    $('.bg-xmas').css('cursor', 'pointer'); 
    $(".bg-xmas").click(function(){ 
     show_msg(); 
     bear_shake(false); 
    }); 
}); 

function bear_shake(bool){ 
    if(bool){ 
     animation = setInterval(function(){ 
      $(".xmas-bear").delay(200).fadeOut(0, function(){ 
       $(".xmas-bear").children("img").attr('src', 'images/xmas/xmas-bear_o1.png'); 
      }).fadeIn(0); 
      $(".xmas-bear").delay(200).fadeOut(0, function(){ 
       $(".xmas-bear").children("img").attr('src', 'images/xmas/xmas-bear_o2.png'); 
      }).fadeIn(0); 
     },0); 
     console.log('true'); 
    }else{ 
     clearInterval(animation); 
     console.log('false'); 
     $(".xmas-bear").children("img").attr('src', 'images/xmas/xmas-bear.png'); 
    } 
} 
+2

무엇이 문제인가 보입니까? 간격을 0으로 설정하는 이유는 무엇입니까? – akonsu

+0

@akonsu bear_shake (true)는 이미지 곰이 계속 변경되도록합니다 (손떨림처럼 보일 것입니다). bear_shake (false)가 "xmas-bear.png"로 바뀌면 애니메이션을 멈추고 싶습니다. 하지만 다시 "xmas-bear.png"로 바뀌며 애니메이션을 계속 진행합니다 –

+1

클릭하면 애니메이션이 멈추지 않는다는 것을 의미합니까? 시간 초과 처리기에서 애니메이션이 생겼음을 알 수 있습니다. 애니메이션을 시작한 후에는 간격을 지우는 지 여부에 관계없이 끝까지 재생됩니다. 모든 애니메이션을 중지하려면 애니메이션을 중지해야합니다. – akonsu

답변

0

여러분, 고맙습니다. 기본 사항을 놓친 것 같아요. 혼자 힘들게하려고했습니다. 저는 여러분 모두 의견을 모아 지금 작동하게되었습니다. 기능은 다음과 같이 재 작성 bear_shake :

function bear_shake(bool){ 
    if(bool){ 
     var i = 2; 
     animation = setInterval(function(){ 
      if(i % 2== 0){ 
       $(".xmas-bear").children("img").attr('src', 'images/xmas/xmas-bear_o1.png'); 
      }else{ 
       $(".xmas-bear").children("img").attr('src', 'images/xmas/xmas-bear_o2.png'); 
      } 
      i++; 
     },200); 
    }else{ 
     clearInterval(animation); 
     $(".xmas-bear").children("img").attr('src', 'images/xmas/xmas-bear.png'); 
    } 
} 

지금 명확하고 나를 위해 간단한 모양은, 여러분 모두 감사합니다. 그리고이 작업을 수행하는 다른 더 좋은 방법이나 더 똑똑한 방법이 있는지 궁금합니다.

+0

질문하거나 답변을 해주지 않습니까? –

+0

@surajrawat이 질문을하고 있었고, 의견에서 다른 사람들로부터 피드백을받은 후에 답을 찾았습니다. 물론 나는 여전히 더 좋은 해결책을 받아 들인다. (그래서 나는 내 자신의 대답을 아직 받아들이지 않았다.) 코드가 여전히 더 똑똑해 보일 수 있으며 다른 가능성을보고 싶습니다. –