2014-06-18 8 views
5

Zrobiłem animację CSS i trochę kodu JavaScript, aby zaktualizować prędkość animacji. Wygląda na to, że mój kod JavaScript jest prawidłowy, ale po ustawieniu prędkości w CSS nie można go już aktualizować. Jeśli nie ustawię prędkości w CSS, JavaScript działa doskonale.Dlaczego prędkość nie może zostać zmieniona na animacji CSS z JavaScriptem

#circle1 { 
    width: 200px; 
    height: 200px; 
    background: blue; 
    -webkit-animation: upDown 5s infinite; /* Safari and Chrome */ 
    animation: upDown 5s infinite; 
} 

Jeśli ostatnie dwie linie w css powyżej usuwane są następujące prace javascript

document.getElementById('circle1').style.webkitAnimationName = 'upDown'; 
document.getElementById('circle1').style.webkitAnimationDuration = '40s'; 

Zobacz ten JS skrzypce Więcej szczegółów http://jsfiddle.net/usJv8/1/

+0

Wygląda jak błąd w Chrome, ustawienie '-webkit-animation: 40s' zamiast' -webkit-animation-duration: 40s'. –

+0

Hmm ... nawet zastosowanie stylu w narzędziach deweloperskich nie będzie działało, dopóki nie wyłączysz animacji, a następnie ponownie ją zastosuję. –

+0

Stosowanie całego skrótu do animacji nie ma żadnego efektu, chociaż narzędzia programistyczne wskazują, że został zastosowany. http://jsfiddle.net/usJv8/2/ –

Odpowiedz

2

Wygląda na to, że jest to kwestia renderowania (ty musi ponownie renderować element, aby wizualizować zmiany). I przyszedł z „rozwiązanie”, że nie wiem, czy to będzie pracować dla Ciebie, gdyż opiera się na usunięcie i ponowne dodanie elementu do DOM:

document.getElementById('circle1').style.webkitAnimationDuration = '40s'; 

var aux = document.getElementById('circle1'); 
document.getElementById("maincenter").removeChild(document.getElementById('circle1')); 
document.getElementById('maincenter').appendChild(aux); 

widać to działa tutaj : http://jsfiddle.net/usJv8/9/ (zauważ, że dodałem identyfikator do środkowego tagu)

+0

Ponieważ prawdopodobnie nie jest to @ PhilipK zamiar natychmiast zmienić właściwość onload ale po kliknięciu lub odłożeniu to przerwie animację i domyślam się, że Philip chce to tak, że piłka będzie kontynuować swoją animację w połowie drogi z niższą prędkością. –

Powiązane problemy