【发布时间】:2020-07-28 12:46:26
【问题描述】:
我遇到了以下情况。
我有一个按钮,其作用类似于普通切换。当我点击“动画”按钮时,我希望<p>This is new Div</p> 淡入,当我再次点击Animate 按钮时,这个<p> 应该淡出。
我怎样才能做到这一点?
const main = document.getElementById('main');
const btn = document.getElementById('btn');
let show = false;
btn.addEventListener('click', () => {
if(show) {
const newDiv = document.getElementById("new-div");
newDiv.remove();
show = false;
} else {
const newDiv = document.createElement('div');
newDiv.id = "new-div";
newDiv.innerHTML = "<p>This is new Div</p>";
main.appendChild(newDiv);
show = true;
}
})
#new-div {
transition: all 2s ease-in-out;
}
<div id="main">
<button id="btn">Animate</button>
</div>
我实际上正在构建一个画廊布局应用程序,它需要在单击图像时淡入+全屏显示,然后在单击时淡出到其原始位置。由于会有很多图片,我想用JS来动态处理这个。
目前最大的障碍是实现fade-out,因为该元素正在被删除。
【问题讨论】:
-
你的动画在哪里?
-
这能回答你的问题吗? CSS transition fade in
-
@OmriAttiya,我想不出任何合适的动画,所以没有包含它。没有上面提到的问题没有回答我的问题,我正在寻找
fade in和fade out实现 -
它是相同的,因为您将它用于所有转换。阅读有关转换及其工作原理的更多信息
-
我已经为这个问题找到了一个潜在的解决方案:jsfiddle.net/0g5cbun6 但是
animationend事件监听器对浏览器的支持是什么?我不明白caniuse.com 说什么
标签: javascript html css fade