WTF???? Проблема с анимацией
Возможно я упоротный, но какое то хрень творится.
Есть функция, которая отвечает за добаление класса и вызов другой функции которая установит координаты ( переменные top и left не используются ), все хорошо анимация работает. пруф
function showAnimateWin( ) {
var top = ( window.innerHeight - win.offsetHeight ) / 2,
left = ( window.innerWidth - win.offsetWidth ) / 2;
win.classList.add("modal-window-animate");
setTimeout( function (){
end();
}, 0);
};
Но, если сделать так (Просто убрать не используемые переменные), то не анимация не работает, точнее работает, но только 1 раз... пруф
function showAnimateWin( ) {
//var top = ( window.innerHeight - win.offsetHeight ) / 2,
// left = ( window.innerWidth - win.offsetWidth ) / 2;
win.classList.add("modal-window-animate");
setTimeout( function (){
end();
}, 0);
};
Какого фига? |
Да ну бред какой то, так тоже работает анимация
Достаточно просто получить win.offsetHeight
function showAnimateWin( ) {
win.offsetHeight ;
win.classList.add("modal-window-animate");
setTimeout( function (){
end();
}, 0);
};
Что за наркомания.. |
cyber, потому что при получении offsetHeight перерисовывается страничка, поэтому работает. Это такой хак. И setTimeout тут не нужен.
Я сам так делаю:
var elem = document.createElement('div');
elem.className = 'transition';
document.body.appendChild(elem);
elem.clientHeight; //HACK - без него анимации не будет
elem.classList.add('show');
|
Ruslan_xDD, ну так оно должно и без него работать..
Мне больше интересно почему без него не работает |
Ппц короче, так работает
function showAnimateWin( ) {
end();
win.classList.add("modal-window-animate");
};
http://jsfiddle.net/p2wozc8a/9/ Подсказали на stackoverflow , на вопрос почему получил ответ Цитата:
|
|
рони, хм, по сути если я перемещаю окно, а потом добавляю transition то окно должно переместится без анимации, но на практике она работает...
|
рони, что можно почитать на эту тему, про то как работает css анимация?
|
cyber,
по теме ничего не могу добавить |
|
| Часовой пояс GMT +3, время: 16:20. |