Ich bin brandneu bei jQuery und habe Erfahrung mit Prototype. In Prototype gibt es eine Methode, um ein Element zu "flashen" - dh. Markieren Sie es kurz in einer anderen Farbe und lassen Sie es wieder normal werden, damit der Blick des Benutzers darauf gelenkt wird. Gibt es eine solche Methode in jQuery? Ich sehe FadeIn, FadeOut und Animieren, aber ich sehe nichts wie "Flash". Vielleicht kann einer dieser drei mit geeigneten Eingaben verwendet werden?
249
$.fn.flash = function(times, duration) { var T = this; times = times || 3; duration = duration || 200; for ( var i=0; i < times; i++ ) { (function() { setTimeout(function() { T.fadeOut(duration, function() { T.fadeIn(duration); }); }, i*duration*2+50); })(i); } };
text-decoration:blink
und entfernen Sie sie.Antworten:
Mein Weg ist .fadein, .fadeout .fadein, .fadeout ......
Code-Snippet anzeigen
quelle
$('..').delay(100).fadeOut().fadeIn('slow')
var $someElement = $("#someElement"); $someElement.fadeIn(100, function(){ $someElement.fadeOut(100, function(){ /*...etc...*/ }) })
Sie können das jQuery Color-Plugin verwenden .
Um beispielsweise auf alle Divs auf Ihrer Seite aufmerksam zu machen, können Sie den folgenden Code verwenden:
Bearbeiten - Neu und verbessert
Das Folgende verwendet die gleiche Technik wie oben, hat jedoch die zusätzlichen Vorteile von:
Erweitern Sie das jQuery-Objekt:
Anwendungsbeispiel:
quelle
Note: The jQuery UI project extends the .animate() method by allowing some non-numeric styles such as colors to be animated.
- Wenn Sie Farben animieren möchten, benötigen Sie die jQuery-Benutzeroberfläche oder ein anderes Plugin.Sie können CSS3-Animationen verwenden, um ein Element zu flashen
Und Sie müssen die Klasse hinzufügen
quelle
@keyframes
undanimation
Regeln unterstützen, sodass außer vielleicht keine Präfixversionen verwendet werden müssen-webkit-
(für den Blackberry-Browser).Nach 5 Jahren ... (und kein zusätzliches Plugin erforderlich)
Dieser "pulsiert" es auf die gewünschte Farbe (z. B. Weiß), indem er eine div-Hintergrundfarbe dahinter setzt und das Objekt dann wieder ein- und ausblendet .
HTML- Objekt (zB Schaltfläche):
jQuery (Vanille, keine anderen Plugins):
Element - Klassenname
erste Zahl in
fadeTo()
Millisekunden für den Übergangzweite Zahl in
fadeTo()
- Deckkraft des Objekts nach dem Ein- / AusblendenSie können dies in der unteren rechten Ecke dieser Webseite überprüfen: https://single.majlovesreg.one/v1/
Bearbeiten Sie (willsteel) keinen duplizierten Selektor, indem Sie $ (this) und optimierte Werte verwenden, um akut einen Flash auszuführen (wie vom OP angefordert).
quelle
fadeTo(0000)
- Metallica$.fn.flashUnlimited=function(){$(this).fadeTo('medium',0.3,function(){$(this).fadeTo('medium',1.0,$(this).flashUnlimited);});}
Sie können es dann so nennen$('#mydiv').flashUnlimited();
- Es macht das, was Majal oben geantwortet hat, und ruft sich am Ende des Zyklus erneut auf.Sie könnten den Hervorhebungseffekt in der jQuery-Benutzeroberfläche verwenden, um dasselbe zu erreichen, denke ich.
quelle
Wenn Sie jQueryUI verwenden, gibt es eine
pulsate
Funktion inUI/Effects
http://docs.jquery.com/UI/Effects/Pulsate
quelle
pulsate
funktioniert gut in Chrome.quelle
fadeIn
undfadeOut
beeinflussen, weil sie die CSS-display
Eigenschaft umschalten , sehen Sie in meinem Fall seltsam aus. Aber dieser behebt das Problem. Danke, es funktioniert elegant wie ein Zauber.Sie können dieses Plugin verwenden (in eine js-Datei einfügen und über das Skript-Tag verwenden)
http://plugins.jquery.com/project/color
Und dann benutze so etwas:
Dadurch wird allen jQuery-Objekten eine Flash-Methode hinzugefügt:
quelle
Sie können die Methode von Desheng Li weiter erweitern, indem Sie zulassen, dass eine Iterationszählung mehrere Blitze wie folgt ausführt:
Dann können Sie die Methode mit einer Zeit und einer Anzahl von Blitzen aufrufen:
quelle
var iterationDuration = Math.floor(duration / iterations);
damit Sie durch ungerade Zahlen teilen können, undreturn this;
so, dass Sie andere Methoden danach verketten können.Reine jQuery-Lösung.
(Keine jquery-ui / animieren / Farbe erforderlich.)
Wenn Sie nur diesen gelben "Flash" -Effekt wünschen, ohne die Abfragefarbe zu laden:
Das obige Skript führt einfach das gelbe Ausblenden von 1s durch, um den Benutzer darüber zu informieren, dass das Element aktualisiert wurde oder ähnliches.
Verwendung:
quelle
Dies ist möglicherweise eine aktuellere Antwort und kürzer, da die Dinge seit diesem Beitrag etwas konsolidiert wurden. Benötigt jquery-ui-effect-Highlight .
http://docs.jquery.com/UI/Effects/Highlight
quelle
Wie wäre es mit einer wirklich einfachen Antwort?
$('selector').fadeTo('fast',0).fadeTo('fast',1).fadeTo('fast',0).fadeTo('fast',1)
Blinkt zweimal ... das sind alle Leute!
quelle
Ich kann nicht glauben, dass dies noch nicht zu dieser Frage gehört. Alles was du tun musst:
Dies macht genau das, was Sie wollen, ist super einfach, funktioniert sowohl für
show()
als auch fürhide()
Methoden.quelle
Würde ein
Impulseffekt(offline) JQuery-Plugin für das, was Sie suchen, geeignet?Sie können eine Dauer hinzufügen, um den Impulseffekt zeitlich zu begrenzen.
Wie von JP in den Kommentaren erwähnt, gibt es jetzt sein aktualisiertes Puls-Plugin .
Siehe sein GitHub-Repo . Und hier ist eine Demo .
quelle
quelle
Fand so viele Monde später, aber wenn es jemanden interessiert, scheint es eine gute Möglichkeit zu sein, etwas dauerhaft zum Blitzen zu bringen:
quelle
Die folgenden Codes funktionieren für mich. Definieren Sie zwei Ein- und Ausblendfunktionen und fügen Sie sie in den Rückruf des anderen ein.
Folgendes steuert die Blinkzeiten:
quelle
Ich suchte nach einer Lösung für dieses Problem, ohne mich auf die jQuery-Benutzeroberfläche zu verlassen.
Dies ist, was ich mir ausgedacht habe und es funktioniert für mich (keine Plugins, nur Javascript und jQuery); - Hier ist die funktionierende Geige - http://jsfiddle.net/CriddleCraddle/yYcaY/2/
Stellen Sie den aktuellen CSS-Parameter in Ihrer CSS-Datei als normales CSS ein und erstellen Sie eine neue Klasse, die nur den Parameter verarbeitet, um die Hintergrundfarbe zu ändern, und setzen Sie ihn auf '! Wichtig', um das Standardverhalten zu überschreiben. so was...
Verwenden Sie dann einfach die folgende Funktion und übergeben Sie das DOM-Element als Zeichenfolge, eine Ganzzahl für die Häufigkeit, mit der der Flash auftreten soll, die Klasse, in die Sie ändern möchten, und eine Ganzzahl für die Verzögerung.
Hinweis: Wenn Sie eine gerade Zahl für die Variable 'times' übergeben, erhalten Sie die Klasse, mit der Sie begonnen haben, und wenn Sie eine ungerade Zahl übergeben, erhalten Sie die umgeschaltete Klasse. Beide sind nützlich für verschiedene Dinge. Ich benutze das 'i', um die Verzögerungszeit zu ändern, oder sie würden alle gleichzeitig feuern und der Effekt würde verloren gehen.
quelle
Wie beim Einblenden / Ausblenden können Sie CSS / Delay animieren
Einfach und flexibel
quelle
3000 ist 3 Sekunden
Von Deckkraft 1 wird es auf 0,3, dann auf 1 usw. ausgeblendet.
Sie können mehr davon stapeln.
Es wird nur jQuery benötigt. :) :)
quelle
Es gibt eine Problemumgehung für den animierten Hintergrundfehler. Diese Übersicht enthält ein Beispiel für eine einfache Hervorhebungsmethode und ihre Verwendung.
https://gist.github.com/1068231
quelle
Wenn das Einbinden einer Bibliothek übertrieben ist, gibt es hier eine Lösung, die garantiert funktioniert.
Ereignisauslöser einrichten
Stellen Sie die Hintergrundfarbe des Blockelements ein
Verwenden Sie in setTimeout fadeOut und fadeIn, um einen kleinen Animationseffekt zu erstellen.
Innerhalb des zweiten setTimeout wird die Standardhintergrundfarbe zurückgesetzt
In ein paar Browsern getestet und es funktioniert gut.
quelle
Leider erfordert die Top-Antwort die JQuery-Benutzeroberfläche. http://api.jquery.com/animate/
Hier ist eine Vanille-JQuery-Lösung
http://jsfiddle.net/EfKBg/
JS
CSS
HTML
quelle
flash
ein jQuery-Objekt erstellen, funktioniert es einwandfrei.var flash = $("<div class='flash'></div>"); $(".hello").prepend(flash); flash.show().fadeOut('slow');
Hier ist eine leicht verbesserte Version der Colbeerhey-Lösung. Ich habe eine return-Anweisung hinzugefügt, damit wir Ereignisse in wahrer jQuery-Form nach dem Aufrufen der Animation verketten. Ich habe auch die Argumente hinzugefügt, um die Warteschlange zu löschen und zum Ende einer Animation zu springen.
quelle
Dieser pulsiert die Hintergrundfarbe eines Elements, bis ein Mouseover-Ereignis ausgelöst wird
quelle
Stellen Sie dies aus all dem zusammen - eine einfache Lösung, um ein Element zu flashen und zur ursprünglichen Farbe zurückzukehren ...
Verwenden Sie wie folgt:
Hoffe das hilft!
quelle
eval
!Hier ist eine Lösung, die eine Mischung aus jQuery- und CSS3-Animationen verwendet.
http://jsfiddle.net/padfv0u9/2/
Im Wesentlichen ändern Sie zunächst die Farbe in Ihre "Blitz" -Farbe und verwenden dann eine CSS3-Animation, um die Farbe auszublenden. Sie müssen die Übergangsdauer ändern, damit der anfängliche "Blitz" schneller als das Überblenden ist.
Wo die CSS-Klassen wie folgt sind.
quelle
gib einfach elem.fadeOut (10) .fadeIn (10);
quelle
Dies ist allgemein genug, damit Sie jeden Code schreiben können, den Sie animieren möchten. Sie können die Verzögerung sogar von 300 ms auf 33 ms verringern und Farben usw. verblassen lassen.
quelle
Sie können das jquery Pulsate-Plugin verwenden, um die Aufmerksamkeit auf jedes HTML-Element zu lenken und die Geschwindigkeit, Wiederholung und Farbe zu steuern.
JQuery.pulsate () * mit Demos
Beispielinitialisierer:
quelle