Я хочу обойти переход CSS и мгновенно изменить свойство.
Я попытался установить transition-duration
в 0s
перед изменением, а затем вернул исходное значение transition-duration
:
$('div').css('width', '200px').delay(1000).queue(function() {
$(this).css({
transitionDuration: '0s',
msTransitionDuration: '0s',
mozTransitionDuration: '0s',
webkitTransitionDuration: '0s',
oTransitionDuration:'0s'
}).css('width', '10px').css({
transitionDuration: '2s',
msTransitionDuration: '2s',
mozTransitionDuration: '2s',
webkitTransitionDuration: '2s',
oTransitionDuration:'2s'
})
})
Fiddle
Это явно не работает.
Я понимаю, что spec не определяет это поведение для этого:
Поскольку эта спецификация не определяет, когда вычисленные значения изменяются, и, следовательно, какие изменения в вычисленных значениях считаются одновременными, авторы должны знать, что изменение любого из свойств перехода небольшое количество времени после внесения изменений, которые могут приводят к поведению, которое варьируется между реализациями, поскольку изменения могут рассматриваться как одновременные в некоторых реализациях, но а не другие.
Есть ли простой способ сделать это?
Примечание. Свойство, которое я изменяю, transform
, поэтому .animate()
не будет вариантом.