$('.transparent').removeClass('transparent').delay(2000).addClass('not_transparent').delay(4000)

Tengo un div que es semi transparente y, a continuación, desea cambiar para que no se transparente. Pero el jQuery .delay(); el método no parece funcionar aquí. Lo he intentado .fadeIn(); en su lugar y que funciona con un retraso pero no funciona el cambio de clases.

InformationsquelleAutor thenengah | 2010-12-28

3 Comentarios

  1. 133

    .delay() se utiliza para los elementos que son parte de un queue, como las animaciones. Un simple addClass no está en la cola.

    Usted podría utilizar setTimeout.

    var trans = $('.transparent').removeClass('transparent');
    setTimeout(function() {
        trans.addClass('not_transparent');
    }, 2000);

    Como alternativa, se podría añadir la no-elemento en cola a la cola con .queue(), aunque creo que un setTimeout sería mejor.

    $('.transparent').removeClass('transparent').delay(2000).queue(function(nxt) {
          $(this).addClass('not_transparent');
          nxt();
    });
    • ok, este es el por qué. Tener sentido. setTimeout es:)
    • ¿por qué crees setTimeout es mejor?
    • Es muy simple, y un nativo de la aplicación. No sé qué tipo de sobrecarga en la que está involucrado con queue(), pero estoy seguro de que es bastante un poco más de la setTimeout.
    • ¿por qué se llama a la función desde dentro de ella misma? nxt();
    • +1 le dio tanto las soluciones de ir, fue inicialmente la planificación sobre el uso de jQuery solución, pero descubrió que no sólo trabajó la primera vez que este evento se dispara. La segunda solución funciona bien.
  2. 6

    Sé que esta es una vieja cuestión, pero todavía hay una gran cantidad de tráfico viniendo aquí desde google así que voy a añadir mi granito de arena;

    Podría utilizar algo como –

    JS:

    $('.transparent').fadeIn().delay(500).queue(function(){
      $('.transparent').addClass('yourclass');
    });

    Puede pasar de una función a la cola en orden a ejecutar después de la demora. Han estado usando esto por mí mismo para ejemplos muy similares.

  3. 0

    .delay() no funciona con el .addClass() etiqueta fuera de una función, así que sólo tiene que utilizar:

    delay();
    function delay(){
         $('.pgtitle').delay(5000).fadeIn(0).addClass('animated bounceInDown');
    }

Dejar respuesta

Please enter your comment!
Please enter your name here