UPDATE: sembra essere fissato ora in Chrome 23. (Si veda il commento @joequincy sulla domanda iniziale)
In effetti, questo sembra un insetto. Fino a quando non viene risolto, è possibile aggirare il animate()
funzione di jQuery come questo:
$(function() {
var rotation = 163;
$('body').on('click', function() {
rotation = (rotation == 163) ? 198 : 163;
$('#wheel').animate({
borderSpacing: rotation
}, {
step: function(now, fx) {
$(this).css('-webkit-transform', 'rotate(' + now + 'deg)');
$(this).css('-moz-transform', 'rotate(' + now + 'deg)');
$(this).css('-ms-transform', 'rotate(' + now + 'deg)');
$(this).css('-o-transform', 'rotate(' + now + 'deg)');
$(this).css('transform', 'rotate(' + now + 'deg)');
}
});
});
});
Rimuovere le dichiarazioni CSS transition
e aggiungere:
border-spacing: 163px;
Questo esempio abusa l'attributo border-spacing
, dal momento che ha vinto' t influenzano il layout nella maggior parte dei casi.
Vedi http://jsfiddle.net/hongaar/wLTLK/1/
(Grazie a questa risposta: Animate element transform rotate)
NOTA: Opzionalmente si può utilizzare il jQuery trasformare plugin per rimuovere le brutte molteplici css()
chiamate e per una versione più semplice della sintassi animate()
(ma aggiungendo overhead). Vedi https://github.com/louisremi/jquery.transform.js
fonte
2012-11-05 14:11:14
Non riesco a riprodurlo con Chrome 21 su Linux. – Blender
Interessante, il bug sembra evidente su Windows e OSX per me, ma non ho Linux da testare. Anche lo –
ha questo problema, l'animazione mostra il suo primo fotogramma e rimane così, se si tratta di un'animazione di fotogrammi chiave, mostrerebbe il suo ultimo fotogramma al termine dell'animazione; controllare questo: http://daneden.me/animate/; tutti gli effetti ROTATION non funzionano – tom91136