Chcę użyć przejścia kolorów CSS3, aby zastosować efekt blaknięcia podświetlania (żółty do przezroczystego) do nowych elementów dodanych do znaczników za pomocą JQuery.CSS3 Przejście do podświetlenia nowych elementów utworzonych w JQuery
CSS
#content div {
background-color:transparent;
-moz-transition:background-color 2s;
-webkit-transition:background-color 2s;
-o-transition:background-color 2s;
transition:background-color 2s;
}
#content div.new {
background-color:yellow;
}
HTML
<div id="content"></div>
<a id="add-element" href="#">add new element</a>
JS
$('#add-element').click(function() {
var newElement = $('<div class="new">new element</div>');
$('#content').append(newElement);
newElement.removeClass('new');
});
Kiedy klikam odnośnik, tworzony jest nowy element. Jego klasa jest "nowa" (kolor żółty w tle) i jest dołączana do znaczników HTML. Powinienem móc natychmiast usunąć "nową" klasę, aby wywołać przejście koloru tła do przezroczystego (lub dowolnego innego koloru). Oczywiście robię to źle, ponieważ kolor tła nowego elementu jest natychmiast wyświetlany jako przezroczysty, bez efektu przejścia. Wiem, że mogę to zrobić w JQuery UI, ale chciałbym użyć przejść CSS3.
jsfiddle tutaj:
http://jsfiddle.net/paulaner/fvv5q/
dziękuję. Działa w Chrome, ale wydaje się być niestabilny i niekonsekwentny w Firefoksie. – Paulaner
@Paulaner Andy ma właściwą odpowiedź, i o tym właśnie myślę. Używanie 1000 zamiast 0 może być lepsze, ponieważ chcesz zobaczyć przejście, 0 po prostu zamigocze kolor i zniknie. BTW, nie widzę przejścia tutaj z FF15, zamiast tego jest on stały żółty, nie jest jeszcze obsługiwany? @Andy, nie uważam tego za "hack". W tej konkretnej sytuacji powinno działać w ten sposób, ponieważ jQuery natychmiastowo wykonał removeClass po dołączeniu, dlatego nie powinno się widzieć przejścia **. – user1643156
Dziękuję wam. Rezigned właśnie opublikował czyste rozwiązanie, które doskonale sprawdza się dla mnie. – Paulaner