Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.02.2013, 18:43
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Баг или фича?
Мне (и, походу, разрабам CSS двига FF, или Webkit) непонятна эта строчка :

Спецификация, от пера горе-поэта

Цитата:
The values used for the keyframes and animation properties are snapshotted at the time the animation starts. Changing them during the execution of the animation has no effect.
Тут сказано (по русски), что изменять свойства анимации и ключевых кадров нельзя, когда она запущена.

Другими словами - они отпечатываются в памяти, когда анимация стартует, и если мы поменяем значение, скажем, длительности (animation-duration), то эффект будет заметен только после переприменения :

Цитата:
Note also, that changing the value of 'animation-name' does not necessarily restart an animation (e.g., if a list of animations are applied and one is removed from the list, only that animation will stop; The other animations will continue). In order to restart an animation, it must be removed then reapplied.
переприменение - это удаление нужной анимации из списка имен активных ("animation-name"), присущих ей параметров (длительность, режим заполнения, и т.д.) и прописывание их заново.

вопрос в том, чем считать запуск анимации?

<теста нет> нужен? наверняка.

Я добавляю (применяю) анимацию к элементу в приостановленном состоянии ("animation-play-state: paused")

В этом приостановленном состоянии я меняю длительность, и другие свойства на нужные (например, прописываю длительность на 5 секунд), и запускаю анимацию ("animation-play-state: running")

т.к. задержка ("animation-delay") установлена в "0s", то она стартует сразу же - т.е. на элементах появляется событие "animationstart".

Вопрос в том, что считать start'ом анимации, и является ли он "execution" анимации?
по-русски : Считать ли добавление анимации в приостановленном состоянии к элементу ее стартом?
еще по-русски : Должна ли анимация, примененная в приостановленном состоянии, считаться запущенной?

В спеке по анимаям куча неровностей, но взаимоисключающие параграфы и неточности меня просто бесят.... млять, кто это писал?

Дело в том, что FF и Webkit ведут себя по разному. У первого она разрешает себя изменять, и в итоге я получаю то, что ожидаю, второй - нет!

Вебкит проверялся на свежем Chromium, свежем Chrome Android, и свежайшем Android Browser (версия андроида 4.2.2) - везде одно и то же, т.е. вина самого вебкита.

Причем, неизвестно, как с этим бороться... когда анимация заканчивается, в Chromium я наблюдаю такую картину, когда анимация заканчивается (с событием "animationend")

/*--->*/ getComputedStyle(anim.elements[0]).webkitAnimationDuration
/*  
  установленная продолжительность анимации для элемента
*/
*!*"2.5s"    // <---- ДВЕ С ПОЛОВИНОЙ СЕКУНДЫ */!*


/*--->*/     event.elapsedTime  
/*  
  event - событие "animationend"
  elapsedTime - затраченное время на анимацию
*/

*!*0.4000000059604645 /* <---- 400 МИЛЛИСЕКУНД (время по-умолчанию) */ */!*



Кто-то из этих двух гигантов (я про браузеры) неправ. Впоследствии я выясню, кто из них семя, а кто плевел.

Нельзя Просто Сделать тест трудновато, т.к. мой тулкит тоже может быть бажным... но этот момент (описан выше) я проверял несколько раз.

Последний раз редактировалось melky, 19.02.2013 в 18:46.
Ответить с цитированием
  #2 (permalink)  
Старый 19.02.2013, 19:27
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Хех, чудесный форум три часа мучался, а тут стоило написать, и решение само пришло

все вроде как решилось переприменением

Для этого :
  1. Ставим имя анимации в "none" - это специальное встроенное имя для пустой анимации
  2. ставим проигрывание в "running"
  3. Ставим имя обратно
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как узнать, float или int значение присвоено переменной? gadyuka Общие вопросы Javascript 4 30.10.2012 15:31
странное поведение Date() - баг или фича? deivan Общие вопросы Javascript 2 02.08.2012 13:30
Баг FF. event.stopPropagation() PeaceCoder Firefox/Mozilla 9 26.12.2009 17:08
Удалить ряд символов перед или после курсора до определенного сивола brd Javascript под браузер 3 30.10.2009 08:20
Странность при вычислении выражений.. Это баг или фича? krvwd Общие вопросы Javascript 9 28.01.2009 18:04