Jestem nowy w jQuery i mam doświadczenie w korzystaniu z Prototype. W Prototypie istnieje metoda „flashowania” elementu - tj. krótko zaznacz go w innym kolorze i pozwól mu powrócić do normalnego stanu, aby przyciągnąć uwagę użytkownika. Czy w jQuery istnieje taka metoda? Widzę fadeIn, fadeOut i animację, ale nie widzę czegoś takiego jak „flash”. Być może jeden z tych trzech może być użyty z odpowiednimi danymi wejściowymi?
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
a następnie usuń go.Odpowiedzi:
Moja droga to .fadein, .fadeout .fadein, .fadeout ......
Pokaż fragment kodu
źródło
$('..').delay(100).fadeOut().fadeIn('slow')
var $someElement = $("#someElement"); $someElement.fadeIn(100, function(){ $someElement.fadeOut(100, function(){ /*...etc...*/ }) })
Możesz użyć wtyczki jQuery Color .
Na przykład, aby zwrócić uwagę na wszystkie elementy div na swojej stronie, możesz użyć następującego kodu:
Edytuj - Nowe i ulepszone
Poniższy używa tej samej techniki, co powyżej, ale ma dodatkowe zalety:
Rozszerz obiekt jQuery:
Przykład użycia:
źródło
Note: The jQuery UI project extends the .animate() method by allowing some non-numeric styles such as colors to be animated.
- Jeśli chcesz animować kolor, POTRZEBUJESZ jQuery UI lub innej wtyczki.Możesz użyć animacji css3 do flashowania elementu
I ty jQuery, aby dodać klasę
źródło
@keyframes
ianimation
reguły, więc nie trzeba używać żadnych prefiksowanych wersji poza tym, że może-webkit-
(dla przeglądarki Blackberry).Po 5 latach ... (I nie jest wymagana dodatkowa wtyczka)
Ten „pulsuje” do pożądanego koloru (np. Białego), umieszczając za nim kolor tła div , a następnie wygaszając i ponownie wprowadzając obiekt.
Obiekt HTML (np. Przycisk):
jQuery (waniliowy, bez innych wtyczek):
element - nazwa klasy
pierwsza liczba w
fadeTo()
milisekundach dla przejściaDruga liczba , w
fadeTo()
- zmętnienie obiektu po zanikania / unfadeMożesz to sprawdzić w prawym dolnym rogu tej strony: https://single.majlovesreg.one/v1/
Edycja (willsteel) bez powielonego selektora za pomocą $ (this) i poprawionych wartości w celu automatycznego wykonania flashowania (zgodnie z żądaniem PO).
źródło
fadeTo(0000)
- Metallica$.fn.flashUnlimited=function(){$(this).fadeTo('medium',0.3,function(){$(this).fadeTo('medium',1.0,$(this).flashUnlimited);});}
Możesz wtedy nazwać to tak$('#mydiv').flashUnlimited();
- robi to, co odpowiedział Majal powyżej, i nazywa się ponownie na końcu cyklu.Chyba możesz użyć efektu podświetlenia w interfejsie jQuery, aby osiągnąć to samo.
źródło
Jeśli używasz jQueryUI, jest
pulsate
funkcja wUI/Effects
http://docs.jquery.com/UI/Effects/Pulsate
źródło
pulsate
działa dobrze w Chrome.źródło
fadeIn
ifadeOut
wpływając na inne elementy rodzeństwa, ponieważ przełącza ondisplay
właściwość css , w moim przypadku wygląda to dziwnie. Ale to rozwiązuje problem. Dzięki, działa elegancko jak urok.Możesz użyć tej wtyczki (umieść ją w pliku js i użyj za pomocą skryptu)
http://plugins.jquery.com/project/color
A następnie użyj czegoś takiego:
Dodaje to metodę „flash” do wszystkich obiektów jQuery:
źródło
Możesz rozszerzyć metodę Desheng Li, pozwalając liczeniu iteracji na wykonanie wielu błysków w następujący sposób:
Następnie możesz wywołać metodę z czasem i liczbą błysków:
źródło
var iterationDuration = Math.floor(duration / iterations);
, aby można było podzielić przez liczby nieparzyste i sprawił,return this;
że można po nim połączyć inne metody.Czyste rozwiązanie jQuery.
(nie wymaga jquery-ui / animate / color.)
Jeśli wszystko, czego chcesz, to żółty efekt „flashowania” bez ładowania koloru jquery:
Powyższy skrypt po prostu powoduje żółte zanikanie 1s, idealne do poinformowania użytkownika, że element został zaktualizowany lub coś podobnego.
Stosowanie:
źródło
To może być bardziej aktualna odpowiedź i jest krótsza, ponieważ od czasu tego postu sprawy zostały nieco skonsolidowane. Wymaga podświetlenia efektu jquery-ui .
http://docs.jquery.com/UI/Effects/Highlight
źródło
Co powiesz na naprawdę prostą odpowiedź?
$('selector').fadeTo('fast',0).fadeTo('fast',1).fadeTo('fast',0).fadeTo('fast',1)
Miga dwa razy ... to wszystko ludzie!
źródło
Nie mogę uwierzyć, że nie ma jeszcze tego pytania. Wszystko co musisz zrobić:
To robi dokładnie to, co chcesz, jest super łatwe, działa zarówno dla, jak
show()
ihide()
metod.źródło
Czy
efekt pulsu(offline) Wtyczka JQuery jest odpowiednia dla tego, czego szukasz?Możesz dodać czas ograniczenia efektu pulsu w czasie.
Jak wspomniał JP w komentarzach, jest teraz jego zaktualizowana wtyczka impulsowa .
Zobacz jego repozytorium GitHub . A oto demo .
źródło
źródło
Znalazłem tak wiele księżyców później, ale jeśli kogo to obchodzi, wygląda na to, że jest to dobry sposób na trwałe flashowanie:
źródło
Poniższe kody działają dla mnie. Zdefiniuj dwie funkcje wejścia i wyjścia i umieść je w wywołaniu zwrotnym.
Poniższe kontroluje czasy błysków:
źródło
Szukałem rozwiązania tego problemu, ale bez polegania na interfejsie jQuery.
Właśnie to wymyśliłem i działa dla mnie (bez wtyczek, tylko Javascript i jQuery); - Oto działające skrzypce - http://jsfiddle.net/CriddleCraddle/yYcaY/2/
Ustaw bieżący parametr CSS w pliku CSS jako normalny css i utwórz nową klasę, która po prostu obsługuje parametr do zmiany, tj. Kolor tła, i ustaw go na „! Ważne”, aby zastąpić domyślne zachowanie. lubię to...
Następnie użyj poniższej funkcji i podaj element DOM jako ciąg, liczbę całkowitą, ile razy chcesz, aby wystąpił flash, klasę, na którą chcesz zmienić, oraz liczbę całkowitą dla opóźnienia.
Uwaga: Jeśli podasz parzystą liczbę dla zmiennej „times”, skończysz z klasą, od której zacząłeś, a jeśli podasz nieparzystą liczbę, skończysz z przełączaną klasą. Oba są przydatne do różnych rzeczy. Używam „i”, aby zmienić czas opóźnienia, w przeciwnym razie wszystkie strzelałyby w tym samym czasie, a efekt zostałby utracony.
źródło
Podobnie jak fadein / fadeout, możesz użyć animacji css / delay
Prosty i elastyczny
źródło
3000 to 3 sekundy
Z krycia 1 jest wyblakłe do 0,3, następnie do 1 i tak dalej.
Możesz układać ich więcej.
Potrzebne jest tylko jQuery. :)
źródło
Istnieje obejście problemu z animowanym błędem w tle. Ta lista zawiera przykład prostej metody podświetlania i jej zastosowania.
https://gist.github.com/1068231
źródło
Jeśli dołączenie biblioteki jest przesadą, jest to rozwiązanie, które z pewnością działa.
Ustaw wyzwalacz zdarzenia
Ustaw kolor tła elementu bloku
Wewnątrz setTimeout użyj fadeOut i fadeIn, aby stworzyć mały efekt animacji.
Wewnątrz drugiego setTimeout zresetuj domyślny kolor tła
Testowany w kilku przeglądarkach i działa dobrze.
źródło
Niestety najlepsza odpowiedź wymaga interfejsu użytkownika JQuery. http://api.jquery.com/animate/
Oto waniliowe rozwiązanie JQuery
http://jsfiddle.net/EfKBg/
JS
CSS
HTML
źródło
flash
utworzysz obiekt jQuery, działa dobrze.var flash = $("<div class='flash'></div>"); $(".hello").prepend(flash); flash.show().fadeOut('slow');
Oto nieco ulepszona wersja rozwiązania colbeerhey. Dodałem instrukcję return, dzięki czemu w prawdziwej formie jQuery łączymy zdarzenia po wywołaniu animacji. Dodałem również argumenty, aby wyczyścić kolejkę i przejść do końca animacji.
źródło
Ten będzie pulsował kolorem tła elementu, dopóki nie zostanie wywołane zdarzenie najechania kursorem myszy
źródło
Złóż to ze wszystkich powyższych - łatwe rozwiązanie do flashowania elementu i powrót do oryginalnego bgcolour ...
Użyj w ten sposób:
Mam nadzieję że to pomoże!
źródło
eval
!Oto rozwiązanie wykorzystujące połączenie animacji jQuery i CSS3.
http://jsfiddle.net/padfv0u9/2/
Zasadniczo zaczynasz od zmiany koloru na „flashowy”, a następnie użyj animacji CSS3, aby pozwolić, aby kolor zniknął. Musisz zmienić czas przejścia, aby początkowe „flashowanie” było szybsze niż zanikanie.
Gdzie klasy CSS są następujące.
źródło
po prostu daj elem.fadeOut (10) .fadeIn (10);
źródło
Jest to na tyle ogólne, że możesz napisać dowolny kod, który chcesz animować. Możesz nawet zmniejszyć opóźnienie z 300ms do 33ms i zanikać kolory itp.
źródło
możesz użyć wtyczki JQuery Pulsate, aby wymusić skupienie uwagi na dowolnym elemencie HTML z kontrolą prędkości, powtarzalności i koloru.
JQuery.pulsate () * z wersjami demonstracyjnymi
przykładowy inicjator:
źródło