Question

Je voudrais faire une course d'animation jquery une seule fois par session avec un cookie. Je l'ai en quelque sorte compris comment faire avec le plug-in cookie de Klaus Hartl, mais, lorsque la page est appelée la deuxième fois, les éléments clignotent. Je suis sous l'impression que $ .fx.off est censé faire jquery saut à l'état final de l'animation, mais les éléments clignotent brièvement, il est comme au lieu de simplement sauter à l'état final, il joue juste dans l'animation très rapidement. Le cookie baissera lorsque le navigateur est quit, puis l'animation va jouer à nouveau - c'est ce que je veux voir se produire. Je veux juste l'animation à jouer une fois par session. Je peux trouver quelques bons tutoriels en ligne sur la façon de faire un commutateur cookie états CSS, mais je veux quelque chose qui empêchera tout simplement l'animation jquery de marche de sorte que l'état final est visible.

Voici ma page de test:

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

Voici mon code:

<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>

Toute pensée serait génial! Merci!

Était-ce utile?

La solution

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();
  }
 });

pourquoi pas comme ça?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top