Texte Clignotant jQuery

Quel est un moyen facile de faire clignoter du texte dans jQuery et un moyen de l'arrêter? Doit fonctionner pour IE, FF et Chrome. Merci

96
demandé sur HP. 2009-10-22 12:15:53

30 réponses

Essayez d'utiliser ce clin plugin

Par Exemple

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

, Il est également un plugin très simple, et vous pourriez probablement l'étendre pour arrêter l'animation et le démarrer sur demande.

50
répondu barkmadley 2015-06-09 18:25:35

Un plugin pour clignoter du texte semble un peu exagéré pour moi...

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);
});
87
répondu alex 2011-12-14 11:41:25

Voici clignotant avec animation:

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

Donnez simplement une classe de clignotement tout ce que vous voulez clignoter:

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

Toutes les salutations à DannyZB sur #jquery

Caractéristiques:

  • n'a pas besoin de plugins (mais JQuery lui-même)
  • fait la chose
35
répondu nir0 2011-07-16 09:09:46

Si vous préférez ne pas utiliser jQuery, cela peut être réalisé 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; 
}

Semble fonctionner dans Chrome, bien que je pensais avoir entendu un léger bruit sanglotant.

12
répondu Jesse Hattabaugh 2011-11-29 21:40:04

Combinez 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 cela fonctionne sur mon web. http://140.138.168.123/2y78%202782

9
répondu Moses 2012-03-16 02:41:30

Voici le mien; il vous donne le contrôle sur les 3 paramètres qui comptent:

  • le fondu en vitesse
  • la vitesse de fondu
  • la vitesse de répétition

.

setInterval(function() {
    $('.blink').fadeIn(300).fadeOut(500);
}, 1000);
8
répondu yPhil 2018-03-22 14:38:50

Vous pouvez également essayer:

<div>some <span class="blink">text</span> are <span class="blink">blinking</span></div>
<button onclick="startBlink()">blink</button>
<button onclick="stopBlink()">no blink</button>

<script>
  function startBlink(){
    window.blinker = setInterval(function(){
        if(window.blink){
           $('.blink').css('color','blue');
           window.blink=false;
         }
        else{
            $('.blink').css('color','white');
            window.blink = true;
        }
    },500);
  }

  function stopBlink(){
    if(window.blinker) clearInterval(window.blinker);
  } 
</script>
5
répondu jerjer 2009-10-22 08:46:19

Vous pouvez également utiliser la manière CSS standard (pas besoin de plugin JQuery, mais compatible avec tous les navigateurs):

// Start blinking
$(".myblink").css("text-decoration", "blink");

// Stop blinking
$(".myblink").css("text-decoration", "none");

Lien W3C

5
répondu Lastnico 2009-11-05 09:48:52
$.fn.blink = function(times, duration) {
    times = times || 2;
    while (times--) {
        this.fadeTo(duration, 0).fadeTo(duration, 1);
    }
    return this;
};
4
répondu yckart 2013-03-30 13:09:47

C'est le moyen le plus simple (et avec le moins de codage):

setInterval(function() {
    $( ".blink" ).fadeToggle();
}, 500);

Violon

Maintenant, si vous cherchez quelque chose de plus sophistiqué...

//Blink settings
var blink = {
    obj: $(".blink"),
    timeout: 15000,
    speed: 1000
};

//Start function
blink.fn = setInterval(function () {
    blink.obj.fadeToggle(blink.speed);
}, blink.speed + 1);

//Ends blinking, after 'blink.timeout' millisecons
setTimeout(function () {
    clearInterval(blink.fn);
    //Ensure that the element is always visible
    blink.obj.fadeIn(blink.speed);
    blink = null;
}, blink.timeout);

Violon

4
répondu Omar 2015-09-01 01:07:14

Ici vous pouvez trouver un jQuery clin plugin rapide démo.

Clignotement de base (clignotement illimité, période de clignotement ~1 sec):

$('selector').blink();

Sur une utilisation plus avancée, vous pouvez remplacer l'un des paramètres:

$('selector').blink({
    maxBlinks: 60, 
    blinkPeriod: 1000,   // in milliseconds
    onBlink: function(){}, 
    onMaxBlinks: function(){}
});

Là, vous pouvez spécifier le nombre maximum de battements et d'avoir accès à quelques rappels: onBlink et onMaxBlinks qui sont assez explicites.

Fonctionne dans IE 7 & 8, Chrome, Firefox, Safari et probablement dans IE 6 et Opera (bien que n'ont pas testé sur eux).

(en pleine divulgation: je suis le créateur de ce précédent. Nous avions le besoin légitime de l'utiliser au travail [Je sais que nous aimons tous dire ceci: -) ] pour une alarme dans un système et j'ai pensé à partager seulement pour une utilisation sur un besoin légitime ; -)).

Voici une autre liste de jQuery clin plugins.

3
répondu fcarriedo 2010-11-22 00:29:46

Ce code est un travail pour moi

   $(document).ready(function () {
        setInterval(function(){
            $(".blink").fadeOut(function () {
                $(this).fadeIn();
            });
        } ,100)
    });
3
répondu mehdi 2015-05-28 15:22:30

Vous pouvez essayer l'effet Pulsate de L'interface utilisateur jQuery:

Http://docs.jquery.com/UI/Effects/Pulsate

2
répondu Leniel Maccaferri 2012-03-27 21:25:53
$(".myblink").css("text-decoration", "blink");

Ne fonctionne pas avec IE 7 & Safari. Fonctionne bien avec Firefox

1
répondu jvm 2011-04-29 10:09:53

Cette solution autonome clignote le texte un nombre spécifié de fois, puis s'arrête.

Le clignotement utilise l'opacité, plutôt que d'afficher/masquer, de fondu ou de basculer pour que le DIV reste cliquable, au cas où il y aurait un problème (vous permet de créer des boutons avec du texte clignotant).

JsFiddle ici (contient des commentaires supplémentaires)

<html>
    <head>
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

        <script type="text/javascript">
            $(document).ready(function() {

                var init = 0;

                $('#clignotant').click(function() {
                    if (init==0) {
                        init++;
                        blink(this, 800, 4);
                    }else{
                        alert('Not document.load, so process the click event');
                    }
                });

                function blink(selector, blink_speed, iterations, counter){
                    counter = counter | 0;
                    $(selector).animate({opacity:0}, 50, "linear", function(){
                        $(this).delay(blink_speed);
                        $(this).animate({opacity:1}, 50, function(){

                            counter++;

                            if (iterations == -1) {
                                blink(this, blink_speed, iterations, counter);
                            }else if (counter >= iterations) {
                                return false;
                            }else{
                                blink(this, blink_speed, iterations, counter);
                            }
                        });
                        $(this).delay(blink_speed);
                    });
                }

                //This line must come *AFTER* the $('#clignotant').click() function !!
                window.load($('#clignotant').trigger('click'));


            }); //END $(document).ready()

        </script>
    </head>
<body>

    <div id="clignotant" style="background-color:#FF6666;width:500px;
    height:100px;text-align:center;">
        <br>
        Usage: blink(selector, blink_speed, iterations) <br />
        <span style="font-weight:bold;color:blue;">if iterations == -1 blink forever</span><br />
        Note: fn call intentionally missing 4th param
    </div>


</body>
</html>

Sources:
Danny Gimenez
Moïse Christian

1
répondu gibberish 2017-05-23 12:18:07

Lien de auteur

<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.1.min.js"></script>

<div id="msg"> <strong><font color="red">Awesome Gallery By Anil Labs</font></strong></p> </div>

<script type="text/javascript" >
function blink(selector){
    $(selector).fadeOut('slow', function(){
        $(this).fadeIn('slow', function(){
            blink(this);
        });
    });
}

blink('#msg');
</script>
1
répondu rd42 2013-10-19 08:34:38

J'allais poster le polyfill steps-chronométré, mais je me suis souvenu que je ne voulais vraiment pas voir cet effet, alors ...

function blink(element, interval) {
    var visible = true;

    setInterval(function() {
        visible = !visible;
        element.style.visibility = visible ? "visible" : "hidden";
    }, interval || 1000);
}
1
répondu Ry- 2013-11-28 17:03:26

Je pense que ce qui suit est d'une plus grande clarté et personnalisation que d'autres réponses.

    var element_to_blink=$('#id_of_element_to_blink');
    var min_opacity=0.2;
    var max_opacity=1.0;
    var blink_duration=2000;
    var blink_quantity=10;
    var current_blink_number=0;

    while(current_blink_number<blink_quantity){
        element_to_blink.animate({opacity:min_opacity},(blink_duration/2),"linear");
        element_to_blink.animate({opacity:max_opacity},(blink_duration/2),"linear");
        current_blink_number+=1;
        }
1
répondu Hermann Ingjaldsson 2015-06-10 18:33:58

Clignotant !

var counter = 5; // Blinking the link 5 times
var $help = $('div.help');
var blinkHelp = function() {
    ($help.is(':visible') ? $help.fadeOut(250) : $help.fadeIn(250));    
    counter--;
    if (counter >= 0) setTimeout(blinkHelp, 500);
};
blinkHelp();
0
répondu mlklc 2011-07-20 14:35:33

Ce code peut aider à ce sujet. Simple, mais utile.

<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.1.min.js"></script>
<script type="text/javascript">
    $(document).ready(function(){
        setInterval("$('#myID/.myClass').toggle();",500);
    });
</script>
0
répondu Jamer Gerero 2012-08-30 10:14:27

J'aime la réponse d'alex, donc c'est un peu une extension de cela sans intervalle (puisque vous devrez effacer cet intervalle éventuellement et savoir quand vous voulez qu'un bouton cesse de clignoter. C'est une solution où vous passez l'élément jquery, Le ms que vous voulez pour le décalage clignotant et le nombre de fois que vous voulez que l'élément clignote:

function blink ($element, ms, times) {
    for (var i = 0; i < times; i++) {
        window.setTimeout(function () {
            if ($element.is(':visible')) {
                $element.hide();
            } else {
                $element.show();
            }
        }, ms * (times + 1));
    }
}
0
répondu Vinay 2013-02-17 23:24:32

Certaines de ces réponses sont assez compliqué, c'est un peu plus facile:

$.fn.blink = function(time) {
    var time = typeof time == 'undefined' ? 200 : time;
    this.hide(0).delay(time).show(0);
}

$('#msg').blink();
0
répondu Aram Kocharyan 2013-03-30 13:08:16

En voyant le nombre de vues sur cette question, et le manque de réponses qui couvrent à la fois le clignotement et l'arrêt, Voici: try jQuery.clignotant out (démo).

HTML:

<p>Hello there!</p>

JavaScript:

var p = $("p");

p.blinker();

p.bind({
    // pause blinking on mouseenter
    mouseenter: function(){
        $(this).data("blinker").pause();
    },
    // resume blinking on mouseleave
    mouseleave: function(){
        $(this).data("blinker").blinkagain();
    }
});
0
répondu user1728278 2013-11-05 16:09:33

En effet un plugin pour un simple effet de clignotement est exagéré. Donc, après avoir expérimenté diverses solutions, j'ai choisi entre une ligne de javascript et une classe CSS qui contrôle exactement comment je veux clignoter les éléments (dans mon cas, pour que le clignotement fonctionne, il suffit de changer l'arrière-plan en transparent, de sorte que le texte soit toujours visible):

JS:

$(document).ready(function () {
        setInterval(function () { $(".blink").toggleClass("no-bg"); }, 1000);
    });

CSS:

span.no-bg {
    background-color: transparent;
}

Exemple Complet à ce js fiddle.

0
répondu Lucian 2014-03-26 13:03:52

La fonctionnalité Blink peut être implémentée par JavaScript simple, Aucune exigence pour le plugin jquery ou même jquery.

Cela fonctionnera dans tous les navigateurs , car il utilise la fonctionnalité de base

Voici le code

HTML:

<p id="blinkThis">This will blink</p>

Code JS:

var ele = document.getElementById('blinkThis');
setInterval(function () {
    ele.style.display = (ele.style.display == 'block' ? 'none' : 'block');
}, 500);

Et un violon de travail

0
répondu V31 2014-09-11 06:31:01

C'est ce qui a fini par fonctionner le mieux pour moi. J'ai utilisé jQuery fadeTo parce que c'est sur WordPress, qui lie déjà jQuery. Sinon, j'aurais probablement opté pour quelque chose avec du JavaScript pur Avant d'ajouter une autre requête http pour un plugin.

$(document).ready(function() {
    // One "blink" takes 1.5s
    setInterval(function(){
        // Immediately fade to opacity: 0 in 0ms
        $(".cursor").fadeTo( 0, 0);
        // Wait .75sec then fade to opacity: 1 in 0ms
        setTimeout(function(){
            $(".cursor").fadeTo( 0, 1);
        }, 750);
    }, 1500);
});
0
répondu Tom Holland 2015-03-11 19:48:15

J'ai écrit une simple extension jquery pour le clignotement du texte tout en spécifiant le nombre de fois où il devrait clignoter le texte, J'espère que cela aide les autres.

//add Blink function to jquery 
jQuery.fn.extend({
    Blink: function (i) {
        var c = i; if (i===-1 || c-- > 0) $(this).fadeTo("slow", 0.1, function () { $(this).fadeTo("slow", 1, function () { $(this).Blink(c);  }); });
    }
});
//Use it like this
$(".mytext").Blink(2); //Where 2 denotes number of time it should blink.
//For continuous blink use -1 
$(".mytext").Blink(-1);
0
répondu Rohit Patel 2016-07-28 01:29:16

Texte Clignotant démarrer et arrêter sur le bouton Cliquez -

<input type="button" id="btnclick" value="click" />
var intervalA;
        var intervalB;

        $(document).ready(function () {

            $('#btnclick').click(function () {
                blinkFont();

                setTimeout(function () {
                    clearInterval(intervalA);
                    clearInterval(intervalB);
                }, 5000);
            });
        });

        function blinkFont() {
            document.getElementById("blink").style.color = "red"
            document.getElementById("blink").style.background = "black"
            intervalA = setTimeout("blinkFont()", 500);
        }

        function setblinkFont() {
            document.getElementById("blink").style.color = "black"
            document.getElementById("blink").style.background = "red"
            intervalB = setTimeout("blinkFont()", 500);
        }

    </script>

    <div id="blink" class="live-chat">
        <span>This is blinking text and background</span>
    </div>
0
répondu Johnny 2016-09-28 08:12:36

Moyen le plus simple:

$(".element").fadeTo(250, 0).fadeTo(250,1).fadeTo(250,0).fadeTo(250,1);

Vous pouvez répéter cela autant que vous le souhaitez ou vous pouvez l'utiliser dans une boucle. le premier paramètre de fadeTo() est la durée de l'effet du fondu, et le second paramètre est l'opacité.

0
répondu Darush 2017-08-19 19:09:30

CE code fera effectivement clignoter les éléments sans toucher à la mise en page (comme le fera fadeIn().fadeOut()) en agissant simplement sur l'opacité; voilà, Texte Clignotant; Utilisable à la fois pour le bien et le mal :)

setInterval(function() {
  $('.blink').animate({ opacity: 1 }, 400).animate({ opacity: 0 }, 600);
}, 800);
0
répondu yPhil 2018-03-23 21:47:29