редактирование: JSFiddle согласно запросу: https://jsfiddle.net/5anz0kgt/1/CSS увядает с JS обратного вызова, чтобы установить отображение CSS на завершение прерывания анимации
Edit 2: Кажется, прерывание анимации на самом деле связано с порядком элементов ... Если новый слой banenr находится поверх старого, анимация будет гладкой. Если новый баннер находится ниже, анимация кажется изменчивой. Новый вопрос поэтому становится причиной, и как я могу это исправить?
В настоящее время я заканчиваю небольшой баннер, и у меня возникают проблемы с анимацией.
Первоначально, я просто имел следующие функции, контролирующие видимость баннера и анимации (который работал):
function fadeOut(el){
el.style.transition = "opacity 0.5s linear 0s";
el.style.opacity = 0;
}
function fadeIn(el){
el.style.transition = "opacity 0.5s linear 0s";
el.style.opacity = 1;
}
Но я быстро заметил, что это (конечно) сделаны кнопки unclickable на баннеры из-за элемента укладки ,
Поэтому я решил установить отображение: нет на невидимых слоях баннера. Для выцветания, я просто добавил
el.style.display = "";
но гаснуть мне нужно страховать CSS анимация была завершена, прежде чем я смог скрыть слой. Поэтому я добавил (любезность http://davidwalsh.name/css-animation-callback):
var transitionEvent = whichTransitionEvent(el);
transitionEvent && el.addEventListener(transitionEvent, function() {
el.style.display = "none";
});
к концу функции Затухание(). Сейчас проблема заключается в том, что переход сейчас очень крут (в большинстве случаев, похоже, работает небольшое подмножество времени).
Оставляя только код отображения в fadeIn(), указывает на изменение fadeOut() как проблему. Наблюдая за firebug, я вижу, что изменения дисплея вступают в игру только после завершения анимации непрозрачности.
Как я могу гарантировать, что мой код дисплея не прерывает анимацию, или, альтернативно, как еще я могу решить проблему стекирования элементов?
Можете ли вы опубликовать jsfiddle, чтобы мы могли обманывать ваш HTML/JS? – Prusprus
https://jsfiddle.net/5anz0kgt/1/ Там вы идете! – rscarson