Pregunta

Me gustaría hacer que una animación jQuery se ejecute solo una vez por sesión con una cookie. He descubierto cómo hacer esto con el complemento de cookie de Klaus Hartl, pero, cuando la página se llama la segunda vez, los elementos flash. Tengo la impresión de que se supone que $. muy rápido. La cookie abandonará cuando se renuncie al navegador, y luego la animación volverá a jugar, eso es lo que quiero que suceda. Solo quiero que la animación repita una vez por sesión. Puedo encontrar algunos buenos tutoriales en línea sobre cómo hacer estados de CSS Switch Cookie, pero quiero algo que simplemente evitará que la animación jQuery se ejecute para que el estado final sea visible.

Aquí está mi página de prueba:

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

Aquí está mi código:

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

¡Cualquier pensamiento sería genial! ¡Gracias!

¿Fue útil?

Solución

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

¿Por qué no te gusta esto?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top