Animation主页动画处理
前言
采用wowjs对主页进行动画效果处理,使得页面加载更加平滑流畅
预览效果
主要配置
- 引入
wow.min.js
和animated.min.css
1
2
3
4
5
6inject:
head:
- <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.1.1/animate.min.css" media="defer" onload="this.media='all'">
bottom:
- <script defer src="https://cdn.jsdelivr.net/gh/graingert/wow@1.3.0/dist/wow.min.js"></script>
- <script defer data-pjax src="/js/fadeIn.js"></script> - 新建
fadeIn.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38// 给首页文章卡片套上动画
var arr = document.getElementsByClassName("recent-post-item");
for(var i = 0;i<arr.length;i++){
// 必填项 打上wow类名
arr[i].classList.add("wow"),
// 必填项 打上动画类名
arr[i].classList.add("animate__zoomIn"),
// 动画执行时间
arr[i].setAttribute("data-wow-duration", "1.5s"),
// 动画延迟多久后执行
arr[i].setAttribute("data-wow-delay", "0"),
// 动画执行次数
arr[i].setAttribute("data-wow-iteration", "1")
}
//给侧边栏套动画
var arr2 = document.getElementsByClassName("card-widget");
for(var i = 0;i<arr2.length;i++){
arr2[i].classList.add("wow");
arr2[i].classList.add("animate__zoomIn");
arr2[i].setAttribute("data-wow-duration", "1.5s"),
arr2[i].setAttribute("data-wow-delay", "0"),
arr2[i].setAttribute("data-wow-iteration", "1")
}
//初始化函数
wow = new WOW({
boxClass: 'wow',
// 当用户滚动时显示隐藏框的类名称
animateClass: 'animated',
// 触发 CSS 动画的类名称(动画库默认为"animate.css"库)
offset: 0,
// 定义浏览器视口底部与隐藏框顶部之间的距离。
// 当用户滚动并到达此距离时,将显示隐藏的框。
mobile: true,
// 在移动设备上打开/关闭wow.js。
live: true
// 在页面上检查新的 wow.js元素。
})
wow.init();
可能会遇到的问题
- 初始化wow尽量不要改变 否则会出错
- 动画名称的类是双
_
建议直接复制 - 使用了pjax的情况下可能出现图片残存一下再隐藏的情况 暂时无法解决 或者使用大背景遮住等待图片完全消失
wowjs
是基于animatedcss
动画的 可以去官方文档查看动画种类
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 鱼与前端🐟!
评论