Text blinkt jQuery

Antworten:

51

Versuchen Sie es mit diesem Blink-Plugin

Beispielsweise

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

Es ist auch ein sehr einfaches Plugin, und Sie können es wahrscheinlich erweitern, um die Animation zu stoppen und bei Bedarf zu starten.

Barkmadley
quelle
1
Ich würde das Blink-Tag verwenden und mit jQuery prüfen, ob der Browser IE ist, und wenn nicht, mit diesem Plugin blinken.
Natrium
11
Das ist mehr Aufwand als es wert ist, nicht wahr?
Barkmadley
1
barkmadley, wie setze ich den Stopp für das Blinken?
HP.
93

Ein Plugin zum Blinken von Text klingt für mich ein bisschen übertrieben ...

Versuche dies...

$('.blink').each(function() {
    var elem = $(this);
    setInterval(function() {
        if (elem.css('visibility') == 'hidden') {
            elem.css('visibility', 'visible');
        } else {
            elem.css('visibility', 'hidden');
        }    
    }, 500);
});
Alex
quelle
12
Alex, danke, dass du das Blink-Tag ins 21. Jahrhundert gebracht hast. Alle meine Parodie-Websites der 90er Jahre danken dir von
ganzem
1
@alex, darf ich Sie bitten, sich hier eine Frage zu einem anderen Thema anzusehen : stackoverflow.com/questions/13137404/… ?
Istiaque Ahmed
2
Wie würden Sie dies verwenden (im Code)? - Entschuldigung für die wahrscheinlich dumme Frage.
TheSteven
2
@TheSteven In diesem Beispiel wird dies auf jedes Element mit einer Klasse von blinkangewendet. Sie hätten also so etwas <span class="blink">Blinky Bill</span>und dann, nachdem DOM fertig oder ähnlich ist, diesen Code ausgeführt.
Alex
38

Hier blinkt die Animation:

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

Geben Sie einfach eine Blinkklasse, was auch immer Sie blinken möchten:

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

Alle Grüße an DannyZB auf #jquery

Eigenschaften:

  • benötigt keine Plugins (aber JQuery selbst)
  • macht das Ding
nir0
quelle
Ja, ich habe herausgefunden, dass nach dem Posten) leicht behoben
nir0
Das ist schön ohne Plugins oder ausgefallene Sachen
Peter T.
13

Wenn Sie jQuery lieber nicht verwenden möchten, kann dies mit CSS3 erreicht werden

@-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; 
}

Scheint in Chrome zu funktionieren, obwohl ich dachte, ich hätte ein leichtes Schluchzen gehört.

Jesse Hattabaugh
quelle
9

Kombinieren Sie die obigen Codes, ich denke, das ist eine gute Lösung.

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

Zumindest funktioniert es in meinem Web. http://140.138.168.123/2y78%202782

Moses
quelle
Dies ist insofern eine gute Antwort, als der Benutzer während des "Aus" -Zyklus weiterhin auf das blinkende Element klicken kann, im Gegensatz zu den Lösungen, bei denen Verstecken oder Umschalten oder Ausblenden verwendet werden. Siehe auch die Antwort von Hermann Ingjaldsson oben.
Cssyphus
fadeIn()und fadeOut()hast es nicht für dich getan?
Alex
8

Hier ist meins ; Sie haben die Kontrolle über die 3 Parameter, die wichtig sind:

  • die Geschwindigkeit verblassen
  • die Ausblendgeschwindigkeit
  • die Wiederholungsgeschwindigkeit

.

setInterval(function() {
    $('.blink').fadeIn(300).fadeOut(500);
}, 1000);
yPhil
quelle
jQuery Verkettung wäre hier großartig
Alex
Dies lässt es zwischen den
Blinkzeichen
@alex und Full Decent Sie haben beide Recht :)
yPhil
6

Sie können auch die Standard-CSS-Methode verwenden (kein JQuery-Plugin erforderlich, aber mit allen Browsern kompatibel):

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

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

W3C Link

Lastnico
quelle
14
Nicht kompatibel mit Chrome und Safari!
Lennart Koopmann
Auch nicht kompatibel mit IE9.
Johndodo
5

Sie können auch Folgendes ausprobieren:

<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>
jerjer
quelle
4
Dieses Beispiel verschmutzt den globalen Namespace unnötig.
alex
5

Dies ist der EINFACHSTE Weg (und mit der geringsten Codierung):

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

Geige

Nun, wenn Sie etwas anspruchsvolleres suchen ...

//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);

Geige

Omar
quelle
4
$.fn.blink = function(times, duration) {
    times = times || 2;
    while (times--) {
        this.fadeTo(duration, 0).fadeTo(duration, 1);
    }
    return this;
};
yckart
quelle
Absolut perfekt! Die Verwendung von setInterval(function ())kann einige Probleme mit sich bringen (Sprudeln, Stoppen, Bleiben "an" usw.) Vielen Dank!
Pedro Ferreira
3

Hier finden Sie ein jQuery-Blink- Plugin mit seiner schnellen Demo .

Grundlegendes Blinken ( unbegrenztes Blinken, Blinkzeit ~ 1 Sek. ):

$('selector').blink();

Bei einer erweiterten Verwendung können Sie eine der folgenden Einstellungen überschreiben:

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

Dort können Sie die maximale Anzahl von Blinksignalen angeben und auf einige Rückrufe zugreifen: onBlinkund onMaxBlinksdas ist ziemlich selbsterklärend.

Funktioniert in IE 7 & 8, Chrome, Firefox, Safari und wahrscheinlich in IE 6 und Opera (obwohl noch nicht getestet).

(Vollständige Offenlegung: Ich bin der Schöpfer dieses vorherigen. Wir hatten das berechtigte Bedürfnis, es bei der Arbeit zu verwenden [ ich weiß, dass wir alle dies gerne sagen :-) ], um einen Alarm innerhalb eines Systems auszulösen , und ich dachte darüber nach, ihn zu teilen nur zur Verwendung bei legitimem Bedarf ;-)).

Hier ist eine weitere Liste von jQuery-Blink-Plugins .

fcarriedo
quelle
3

Dieser Code ist Arbeit für mich

   $(document).ready(function () {
        setInterval(function(){
            $(".blink").fadeOut(function () {
                $(this).fadeIn();
            });
        } ,100)
    });
mehdi
quelle
2

Sie können den jQuery UI Pulsate-Effekt ausprobieren:

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

Leniel Maccaferri
quelle
1
Ich bin mir nicht sicher, warum Leute mit "pulsate" solche Längen (benutzerdefinierte Codierung) wählen.
Jeffz
@ Jeffz Leute, die keine jQuery-Benutzeroberfläche auf ihrer Seite haben möchten, um einen kleinen Effekt zu erzielen, der in wenigen Zeilen erzielt werden kann.
Alex
@ Alex Du hast recht. Seit 2012 bin ich auf viele Websites gestoßen, auf denen so etwas wie Blinken erforderlich war und die jQuery-Benutzeroberfläche keine Option war.
Jeffz
2

Einfachster Weg:

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

Sie können dies so oft wiederholen, wie Sie möchten, oder Sie können es in einer Schleife verwenden. Der erste Parameter von fadeTo () ist die Dauer, bis zu der die Überblendung wirksam wird, und der zweite Parameter ist die Deckkraft.

Darush
quelle
1
$(".myblink").css("text-decoration", "blink");

funktionieren nicht mit IE 7 & Safari. Arbeiten Sie gut mit Firefox

jvm
quelle
1

Diese eigenständige Lösung blinkt den Text eine bestimmte Anzahl von Malen und stoppt dann.

Das Blinken verwendet Deckkraft anstelle von Ein- / Ausblenden, Überblenden oder Umschalten, sodass der DIV für den Fall, dass dies jemals ein Problem darstellt, anklickbar bleibt (Sie können Schaltflächen mit blinkendem Text erstellen).

jsFiddle hier (enthält zusätzliche Kommentare)

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

Quellen:
Danny Gimenez
Moses Christian

Cssyphus
quelle
1

Link zum Autor

<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>
rd42
quelle
1

Ich wollte die stepszeitgesteuerte Polyfüllung veröffentlichen, aber dann fiel mir ein, dass ich diesen Effekt wirklich nie sehen möchte, also…

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

    setInterval(function() {
        visible = !visible;
        element.style.visibility = visible ? "visible" : "hidden";
    }, interval || 1000);
}
Ry-
quelle
1

Ich bin der Meinung, dass das Folgende klarer und anpassbarer ist als andere Antworten.

    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;
        }
Hermann Ingjaldsson
quelle
1
Dies ist insofern eine gute Antwort, als der Benutzer während des "Aus" -Zyklus weiterhin auf das blinkende Element klicken kann, im Gegensatz zu den Lösungen, bei denen Verstecken oder Umschalten oder Ausblenden verwendet werden. Siehe auch Moses Christians Antwort unten.
Cssyphus
1
1. Ihre erste Gruppe von Vars ist global. 2. Ihre Vars sind irreführend und element_idzeigen auf einen Selektor. 3. Sie wählen immer wieder dasselbe Element aus
Alex
Vielen Dank für das Feedback, ich habe diese Punkte durchgesehen und behoben.
Fzs2
1

Dieser Code lässt die Elemente effektiv blinken, ohne das Layout zu berühren (wie fadeIn().fadeOut()dies der Fall ist), indem nur auf die Deckkraft reagiert wird. Los geht's, blinkender Text; verwendbar für gut und böse :)

setInterval(function() {
  $('.blink').animate({ opacity: 1 }, 400).animate({ opacity: 0 }, 600);
}, 800);
yPhil
quelle
0

Blinkend!

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();
mlklc
quelle
0

Dieser Code kann zu diesem Thema hilfreich sein. Einfach und doch nützlich.

<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>
Jamer Gerero
quelle
1
Dadurch wird das betreffende Element entfernt, wenn es unsichtbar ist, was letztendlich die Struktur der Seite beeinträchtigen kann.
Ramblinjan
0

Ich mag die Antwort von alex, daher ist dies eine Erweiterung des Intervalls ohne Intervall (da Sie dieses Intervall eventuell löschen müssen und wissen müssen, wann eine Schaltfläche nicht mehr blinken soll. Dies ist eine Lösung, bei der Sie das jquery-Element übergeben , die ms, die Sie für den Blinkversatz wünschen, und die Häufigkeit, mit der das Element blinken soll:

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));
    }
}
Vinay
quelle
0

Einige dieser Antworten sind ziemlich kompliziert, das ist etwas einfacher:

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

$('#msg').blink();
Aram Kocharyan
quelle
0

Angesichts der Anzahl der Aufrufe zu dieser Frage und des Mangels an Antworten, die sowohl das Blinken als auch das Stoppen abdecken, können Sie Folgendes tun : Probieren Sie jQuery.blinker aus ( Demo ).

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

In der Tat ist ein Plugin für einen einfachen Blinkeffekt übertrieben. Nachdem ich mit verschiedenen Lösungen experimentiert habe, habe ich zwischen einer Zeile Javascript und einer CSS-Klasse gewählt, die genau steuert, wie ich die Elemente blinken möchte (in meinem Fall muss ich nur den Hintergrund in transparent ändern, damit das Blinken funktioniert der Text ist noch sichtbar):

JS:

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

CSS:

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

Vollständiges Beispiel für diese Geige .

Lucian
quelle
0

Die Blink-Funktionalität kann durch einfaches Javascript implementiert werden, ohne dass ein JQuery-Plugin oder sogar JQuery erforderlich ist.

Dies funktioniert in allen Browsern , da die Grundfunktionalität verwendet wird

Hier ist der Code

HTML:

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

JS-Code:

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

und eine funktionierende Geige

V31
quelle
0

Das hat am besten für mich funktioniert. Ich habe jQuery fadeTo verwendet, weil dies auf WordPress ist, das jQuery bereits verknüpft. Andernfalls hätte ich mich wahrscheinlich für etwas mit reinem JavaScript entschieden, bevor ich eine weitere http-Anfrage für ein Plugin hinzugefügt hätte.

$(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);
});
Tom Holland
quelle
0

Ich habe eine einfache jquery-Erweiterung für das Blinken von Text geschrieben und dabei angegeben, wie oft der Text blinken soll. Ich hoffe, es hilft anderen.

//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);
Rohit Patel
quelle
0

Text Blinken Start und Stopp beim Klicken auf die Schaltfläche -

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