106 votes

Texte clignotant jQuery

Quel est le moyen le plus simple de faire clignoter du texte en jQuery et un moyen de l'arrêter ? Cela doit fonctionner pour IE, FF et Chrome. Merci

0 votes

0 votes

Duplicata possible de Alternative pour <blink>

94voto

alex Points 186293

Un plugin pour faire clignoter un texte me semble un peu excessif...

Essayez ceci...

$('.blink').each(function() {
    var elem = $(this);
    setInterval(function() {
        if (elem.css('visibility') == 'hidden') {
            elem.css('visibility', 'visible');
        } else {
            elem.css('visibility', 'hidden');
        }    
    }, 500);
});

13 votes

Alex, merci d'avoir fait entrer le tag blink dans le 21ème siècle, tous mes sites parodiques des années 90 te remercient du fond de leur vilain petit cœur :)

1 votes

@alex, puis-je vous demander de jeter un coup d'œil à une question sur jquery dans un autre sujet ici : stackoverflow.com/questions/13137404/ ?

2 votes

Comment utiliseriez-vous ceci (en code) ? - Désolé pour ce qui est probablement une question stupide.

54voto

barkmadley Points 3526

Essayez d'utiliser ce plugin blink

Par exemple

$('.blink').blink(); // default is 500ms blink interval.
//$('.blink').blink(100); // causes a 100ms blink interval.

Il s'agit également d'un plugin très simple, et vous pourriez probablement l'étendre pour arrêter l'animation et la relancer à la demande.

1 votes

J'utiliserais le blink-tag, et je vérifierais avec jQuery si le navigateur est IE, et si ce n'est pas le cas, je ferais un blink avec ce plugin.

11 votes

C'est plus d'efforts que ça n'en vaut la peine, n'est-ce pas ?

1 votes

Barkmadley, comment puis-je régler l'arrêt du clignotement ?

41voto

nir0 Points 224

Voici le clignotement avec animation :

$(".blink").animate({opacity:0},200,"linear",function(){
  $(this).animate({opacity:1},200);
});

Il suffit de donner une classe de clignotement à ce que vous voulez clignoter :

<div class="someclass blink">some text</div>

tout le respect dû à DannyZB sur #jquery

caractéristiques :

  • ne nécessite aucun plugin (sauf JQuery lui-même)
  • fait la chose

0 votes

Oui, je m'en suis rendu compte après avoir posté le message), mais c'est réparé facilement.

0 votes

C'est agréable sans aucun plugin ou truc fantaisiste.

15voto

arkanciscan Points 1926

Si vous préférez ne pas utiliser jQuery, vous pouvez le faire avec CSS3.

@-webkit-keyframes blink {  
  from { opacity: 1.0; }
  to { opacity: 0.0; }
}

blink {
  -webkit-animation-name: blink;  
  -webkit-animation-iteration-count: infinite;  
  -webkit-animation-timing-function: cubic-bezier(1.0,0,0,1.0);
  -webkit-animation-duration: 1s; 
}

Ça semble fonctionner dans Chrome, mais j'ai cru entendre un léger bruit de sanglot.

9voto

Moses Christian Points 73

En combinant les codes ci-dessus, je pense que c'est une bonne solution.

function blink(selector){
    $(selector).animate({opacity:0}, 50, "linear", function(){
        $(this).delay(800);
        $(this).animate({opacity:1}, 50, function(){
        blink(this);
        });
        $(this).delay(800);
    });
}

Au moins, ça fonctionne sur mon site web. http://140.138.168.123/2y78%202782

0 votes

Il s'agit d'une bonne réponse dans la mesure où elle permet toujours à l'utilisateur de cliquer sur l'élément clignotant pendant le cycle "off", contrairement aux solutions qui utilisent le masquage, le basculement ou le fondu. Voir également la réponse de Hermann Ingjaldsson ci-dessus.

0 votes

fadeIn() y fadeOut() ne l'a pas fait pour vous ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X