В настоящее время я пишу плагин jQuery для создания / управления переходами CSS, и я обнаружил это странное поведение с длительностью перехода.
Очевидно, что во время выполнения перехода любые изменения в свойстве duration игнорируются, если только для переходных свойств не будет присвоено другое значение.Сама длительность не приводит к изменению перехода.
Ниже приведен код, показывающий пример этого, а ниже приведены некоторые ссылки на jsFiddle, чтобы дать вам лучшее представление о поведении перехода, которого я пытаюсь достичь..
/* starting transition */
.t1 {
-webkit-transition-duration: 5s;
-webkit-transition-property: width;
width: 500px;
}
/* during the above, this will do nothing */
.t2 {
-webkit-transition-duration: 200ms;
-webkit-transition-property: width;
width: 500px;
}
/* but this will override the transition as expected */
.t3 {
-webkit-transition-duration: 200ms;
-webkit-transition-property: width;
width: 501px; /* 1 pixel added */
}
Любые идеи о том, как заставить переход принять обновленную продолжительность?
ОБНОВЛЕНИЕ
Похоже, это поведение определено в спецификации,но я все еще открыт для обходного пути, если у кого-то есть такой.
(С www.w3.org/TR/css3-transitions/#starting)
После переходасвойство запущено, оно должно продолжать работать на основе исходной функции синхронизации, длительности и задержки, даже если свойство 'transition-timer-function', 'transition-duration' или 'transition-delay' изменяется до завершения перехода.