Domanda

Vorrei fare una corsa di animazione jQuery solo una volta per sessione con un cookie. Ho capito come farlo con il plug -in cookie di Klaus Hartl, ma, quando la pagina è chiamata la seconda volta, gli elementi flash. Ho l'impressione che $ .fx.off dovrebbe far saltare jQuery allo stato finale dell'animazione, ma gli elementi lampeggiano brevemente, è come invece di saltare allo stato finale, gioca solo attraverso l'animazione molto velocemente. Il cookie abbandonerà quando il browser uscirà, e quindi l'animazione giocherà di nuovo-questo è quello che voglio accadere. Voglio solo che l'animazione suoni una volta per sessione. Riesco a trovare alcuni buoni tutorial online su come realizzare uno Switch Cookie Switch CSS, ma voglio qualcosa che impedisca semplicemente l'animazione jQuery di correre in modo che lo stato finale sia visibile.

Ecco la mia pagina di prova:

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

Ecco il mio codice:

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

Qualsiasi pensiero sarebbe fantastico! Grazie!

È stato utile?

Soluzione

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

Perché non mi piace questo?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top