我做了一个简单的幻灯片放映,div个一个堆叠在另一个上面. 我把显示的div换成display:nonedisplay:block.

但当我添加动画时,我遇到了一个问题.淡入效果很好,但我不知道如何淡出正在消失的幻灯片.幻灯片就这样消失了,我找不到任何有效的淡出方法.请问错误在哪里?

let pages = document.getElementsByClassName("page");

let buttons = document.getElementsByClassName("page-button");

let currentPage = 0;
pages[currentPage].style.display = "block";
for (let i = 0; i < buttons.length; i++) {
  buttons[i].addEventListener("click", () => changePage(i));
}

function changePage(k) {
  pages[currentPage].style.display = "none";
  pages[k].style.display = "block";
  currentPage = k;
}
.content-container {
  display: flex;
  height: 90vh;
}

.page {
  position: absolute;
  display: none;
  width: 100%;
  height: 100%;
  animation: fadeIn 3s;
}

@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

#slideshow {
  flex-grow: 1;
  position: relative;
}
<div class="content-container">
  <div id="slideshow">
    <div class="page" style="background-color: red;"></div>
    <div class="page" style="background-color: green;"></div>
    <div class="page" style="background-color: blue;"></div>
  </div>
  <button class="page-button">1</button>
  <button class="page-button">2</button>
  <button class="page-button">3</button>
</div>

推荐答案

对于动画,我使用名为Animate.css的库.请看以下链接:

https://animate.style/

您可以使用NPM安装此库:

npm install animate.css --save

然后,您可以像这样使用该库:

<div class="page animate__fadeOutLeft" style="background-color: green;">

Javascript相关问答推荐

如何使用React渲染器放置根dis?

具有相同参数的JS类

如何在RTK上设置轮询,每24小时

防止用户在selectizeInput中取消 Select 选项

角色 map 集/spritebook动画,用户输入不停止在键上相位器3

如何调用名称在字符串中的实例方法?

在带有背景图像和圆形的div中添加长方体阴影时的重影线

用于编辑CSS样式的Java脚本

Prisma具有至少一个值的多对多关系

优化Google Sheet脚本以将下拉菜单和公式添加到多行

如何在文本字段中输入变量?

更改预请求脚本中重用的JSON主体变量- Postman

如何将数组用作复合函数参数?

Use Location位置成员在HashRouter内为空

根据一个条件,如何从处理过的数组中移除一项并将其移动到另一个数组?

以编程方式聚焦的链接将被聚焦,但样式不适用

TabNavigator和StackNavigator之间的Reaction Native中的导航问题

React数组查找不读取变量

在对象的嵌套数组中添加两个属性

REACT-本机错误:错误类型错误:无法读取未定义的容器的属性