📅  最后修改于: 2023-12-03 15:13:25.295000             🧑  作者: Mango
AOS(Animated On Scroll)是一个轻量级的基于 Shell-Bash 的动画效果库,适用于 Web 开发中的页面滚动动画效果。AOS 可以快速实现页面元素的进入、滚动、退出等动画效果,让页面更加活泼生动。下面是对 AOS 库进行详细介绍。
AOS 可以通过 npm 进行安装:
npm install aos --save
或者通过 CDN 引入:
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.css" />
<script src="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.js"></script>
在使用 AOS 之前,需要先对其进行初始化:
import AOS from 'aos';
import 'aos/dist/aos.css';
AOS.init();
可以通过自定义配置来修改 AOS 的默认设置:
AOS.init({
duration: 1200,
easing: 'ease-in-out',
delay: 100,
once: true
});
在需要添加动画效果的元素上添加 data-aos
属性:
<div data-aos="fade-up">Hello World!</div>
AOS 提供了多种动画类型,可以通过 data-aos
属性来选择:
fade
:透明度渐变效果fade-up
:往上滑动淡出效果fade-down
:往下滑动淡出效果fade-left
:往左滑动淡出效果fade-right
:往右滑动淡出效果fade-up-right
:往右上滑动淡出效果fade-up-left
:往左上滑动淡出效果fade-down-right
:往右下滑动淡出效果fade-down-left
:往左下滑动淡出效果flip-up
:向上旋转效果flip-down
:向下旋转效果flip-left
:向左旋转效果flip-right
:向右旋转效果slide-up
:往上滑动效果slide-down
:往下滑动效果slide-left
:往左滑动效果slide-right
:往右滑动效果zoom-in
:缩小效果zoom-out
:放大效果下面是一个使用 AOS 的示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>AOS Demo</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.css" />
<style>
.box {
width: 100%;
height: 200px;
background-color: #ff5722;
margin: 20px 0;
}
.box1 {
background-color: #e91e63;
}
.box2 {
background-color: #9c27b0;
}
.box3 {
background-color: #3f51b5;
}
.box4 {
background-color: #009688;
}
.box5 {
background-color: #ffc107;
}
.box6 {
background-color: #607d8b;
}
.box7 {
background-color: #795548;
}
</style>
</head>
<body>
<div data-aos="fade-down" class="box"></div>
<div data-aos="flip-left" class="box"></div>
<div data-aos="fade-up" data-aos-delay="300" class="box"></div>
<div data-aos="flip-right" data-aos-delay="300" class="box"></div>
<div data-aos="zoom-in" data-aos-delay="600" class="box"></div>
<div data-aos="zoom-out" data-aos-delay="600" class="box"></div>
<div data-aos="slide-left" data-aos-delay="900" class="box"></div>
<div data-aos="slide-right" data-aos-delay="900" class="box"></div>
<div data-aos="fade" data-aos-delay="1200" class="box box1"></div>
<div data-aos="fade" data-aos-delay="1500" class="box box2"></div>
<div data-aos="fade" data-aos-delay="1800" class="box box3"></div>
<div data-aos="fade" data-aos-delay="2100" class="box box4"></div>
<div data-aos="fade" data-aos-delay="2400" class="box box5"></div>
<div data-aos="fade" data-aos-delay="2700" class="box box6"></div>
<div data-aos="fade" data-aos-delay="3000" class="box box7"></div>
<script src="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.js"></script>
<script>
AOS.init({
duration: 1200,
easing: 'ease-in-out',
delay: 100,
once: true
});
</script>
</body>
</html>
效果如下: