2011-04-28 11 views
24

Powiel możliwe:
Manipulating CSS pseudo-elements using JQuerydocelowa: before i: after pseudo-elementów z jQuery

Na pageload chcę: before i: after elementów na klasy pojawiać. Ustawiłem .lifted: before i .lifted: after, aby były nieprzezroczyste: 0 w css. W przygotowanym dokumencie mam:

$(".lifted:before").css("opacity", "1"); 
$(".lifted:after").css("opacity", "1"); 

To nie działa. Manipulator jQuery .after jest przeznaczony tylko do wstawiania treści, o ile wiem.

Czy istnieje sposób, w jaki mogę manipulować css tych pseudoelementów za pomocą jQuery?

+0

http://docs.jquery.com/DOM/Traversing/Selectors#Not_supported <- tutaj są docs <- nie – austinbv

Odpowiedz

23

Zdecydowano się na rozwiązanie polegające na dodaniu klasy do obciążenia elementu, a następnie manipulowaniu nią w css.

$(".lifted").addClass("on"); 

CSS

.lifted.on:before, 
.lifted.on:after { 
       opacity: 1; 
    -webkit-transition: opacity 1200ms cubic-bezier(0.25, 0.1, 0.25, 1); 
     -o-transition: opacity 1200ms cubic-bezier(0.25, 0.1, 0.25, 1); 
      transition: opacity 1200ms cubic-bezier(0.25, 0.1, 0.25, 1); 
     -moz-transition: none /* Removed until FF4 hang bug is fixed */ 
+2

+1 można na eleganckie rozwiązanie. Dodanie klasy zamiast walczyć o wybór elementu pół-istniejącego jest bardzo miłe. Dziękuję Ci. – turzifer

+13

Ale to nie rozwiązuje problemu manipulowania treścią "przed" za pomocą jQuery. – Kokodoko