2011-01-31 4 views
1

jquery 애니메이션을 쿠키로 세션 당 한 번만 실행하고 싶습니다. 클라우스 하틀 (Klaus Hartl)의 쿠키 플러그인을 사용하여이를 수행하는 방법을 알아 냈습니다. 그러나 페이지가 두 번째로 호출되면 요소가 번쩍입니다. 나는 $ .fx.off가 jquery를 애니메이션의 끝 상태로 점프 하게끔 만들었지 만, 요소는 간단히 깜박이며, 끝 상태로 점프하는 대신 애니메이션을 통해 재생됩니다. 정말 빨리. 브라우저가 종료되면 쿠키가 삭제되고 애니메이션이 다시 재생됩니다. 그게 내가 원하는 것입니다. 애니메이션을 세션 당 한 번 재생하기 만하면됩니다. 쿠키 전환 CSS 상태를 만드는 방법에 대한 좋은 자습서를 온라인에서 찾을 수 있지만 jquery 애니메이션이 실행되지 않도록하여 최종 상태를 볼 수있는 무언가를 원합니다.쿠키로 jquery 애니메이션을 취소 할 때의 문제

<script type="text/javascript"> 
var welcome=$.cookie('welcome'); if(welcome == 'ran') {$.fx.off = !$.fx.off;}; 
</script> 


<!--slider--> 
<script type="text/javascript"> 
$(window).load(function(){$(".imwpj") 
.animate({"top": "+=200px"}, 0) 
.fadeIn(2000).delay(200).animate({"top": "+=295px"}, 1100, function() { 
$('#sub-fader').fadeIn(1500); }); 
$.cookie('welcome', 'ran'); 
}); 
</script> 

상관 생각이 좋은 것 :

http://ianmartinphotography.com/test-site/index-cookies-04.html

여기 내 코드입니다 :

다음은 테스트 페이지입니다! 감사!

답변

2
var welcome=$.cookie('welcome'); 
$(window).load(function(){ 
    if(welcome != 'ran') { 
    $(".imwpj") 
    .animate({"top": "+=200px"}, 0) // this is not necessary, you can use css("top", "200px") 
    .fadeIn(2000).delay(200).animate({"top": "+=295px"}, 1100, function() { 
    $('#sub-fader').fadeIn(1500); }); 
    $.cookie('welcome', 'ran'); 
    } else { 
    $(".imwpj").css("top", "495px"); 
    $("#sub-fader").css("display", "block"); //or .show(); 
    } 
}); 

왜 이렇게하지 않습니까?

+0

좋아요, 재미 있습니다! 그 쿠키로 애니메이션을 확실히 중단 시켰습니다. 그러나 코드의 어떤 부분이 정확히 멈추라 고 말하고 있습니까? –

+0

아무데도 실행되지 않을 것입니다. – Luke

+0

... 지금해야 할 일은 쿠키가 "실행"값을 주면 전체 애니메이션의 최종 상태를 표시하는 것입니다. 어떤 통찰력이라도 좋을 것입니다! 이제 코드를 설치 한 다음에는 애니메이션이 중지되었다는 것을 알고 있으므로 빈 배경을 얻을 수 있습니다. –

관련 문제