2013-08-28 10 views
5

Mam dwa divy ustawione absolutnie i umieszczam je względem siebie. Kiedy width jednego z nich ulega zmianie, to ponownie przeliczam i ustawia pozycje. Podczas korzystania z przejścia css3 w usłudze "width", gdy próbuję uzyskać "width" z animowanej, daje mi aktualną wartość w dom. Ale chcę uzyskać docelową wartość przejścia do prawidłowego ustawienia pozycji na początku efektu przejścia. Czy jest to możliwe, aby uzyskać wartość docelową za pośrednictwem javascript lub na inne sposoby?Czy jest możliwe uzyskanie docelowej wartości właściwości css podczas przejścia css3 w JavaScript?

EDIT

Poniżej znajduje się jsfiddle pokazuje mój problem. Ostrzega "100px", ale muszę uzyskać "300px".

http://jsfiddle.net/Mdbgs/

Dzięki.

+0

można pokazać nam swój kod? może powinieneś rozważyć utworzenie próbki na jsfiddle, aby podświetlić problem, abyśmy mogli zrozumieć Twój problem i spróbować Ci w tym pomóc. – trrrrrrm

+0

Jak ustawić szerokość? Czy jest włączony "auto" i automatycznie rozszerza/kurczy się? –

+0

pozwól mi spróbować stworzyć skrzypce –

Odpowiedz

5

To dlatego .css('width') dzwoni getComputedStyle na elemencie, który ma zwrócić wartość przejście. Jeśli nie bezpośredniego dostępu do stylu, co można uzyskać to, co właśnie zaszło:

document.getElementById('transition_div').style.width 
$('#transition_div').prop('style').width 
$('#transition_div')[0].style.width 

(updated fiddle)

+0

Jesteś niesamowitym człowiekiem, o to pytałem. Dziękuję za Twoją odpowiedź. –

+1

czy jest możliwe uzyskanie wartości wyliczonej własności css? Mam na myśli, gdy nie jest określony w stylach: http://stackoverflow.com/questions/18975412/is-it-possible-to-get-the-target-calculated-css-property-value-during-a-css3-tra –

2

Można użyć zdarzenia transitionend: (see for equivalent prefixed vendor)

$('#transition_div').css('width', 300).on("transitionend", function() { 
    alert($(this).css('width')); 
}); 

DEMO

+0

Nie wiedziałem o tym wydarzeniu, dzięki za odpowiedź. Ale na prawdę muszę uzyskać wartość na początku przejścia. Czy istnieje jakiś legalny lub nielegalny sposób na zrobienie tego? –

+0

Zobacz komentarze @ JonasGrumann, ponieważ nie rozumiem również Twojego problemu. Ponieważ jeśli animujesz DIV do określonej wartości, to znasz wartość. –

+0

Mam ten sam problem i prawdopodobnie pokazałbym to samo. To, co się dzieje, to fakt, że w prawdziwym kodzie część, która wykonuje animację i część, która jest sprawdzana, znajduje się w zupełnie innych miejscach. Część, w której potrzebuję odczytać wartość, znajduje się w moich testach. – terrinecold

Powiązane problemy