今天看迅雷官网 https://www.xunlei.com/v2018/dist/aboutus.html
实现的滚动到可视区域后显示动画,自己之前没做过这种,非常感兴趣,然后问小伙伴,
大部分都没做过类似的,于是乎我只能自己查了
第一想到的是swiper,之前写轮播图用过。
https://www.swiper.com.cn/
https://www.swiper.com.cn/usage/animate/index.html
但是引入了之后 发现不是特别适合我 而且还有5版本6版本一系列写法兼容问题,遂放弃。
再经历一番查阅后,发现Animate.css适合,结合wow.js就能实现,WOW.js 依赖 animate.css,它支持 animate.css 多达 60 多种的动画效果
先看animate.css这个插件,animate展示链接,点击跳转,https://animate.style/
这个是它中文的官网:http://www.animate.net.cn/
不废话 上代码 在vue项目使用:
第一步先安装animate.css
- link引入方式,用的cdn
<link href="https://cdn.bootcdn.net/ajax/libs/animate.css/4.1.1/animate.compat.css" rel="stylesheet">
-第二种npm:
npm install animate.css ;
//在main.js引入
import animated from 'animate.css'
Vue.use(animated)
注意!!!!!!!!!!!!!!!!
vue版本兼容性问题导致会动画不起作用!默认会安装4版本的
处理办法,安装对应低版本的动画插件:
npm install animate.css@3.5.1 --save
第二部引入wowjs:
我是在组件中引入的WOW,当然你也可以在全局,全局引入记得挂载到vue原型上即可
import {
WOW } from "wowjs";
mounted() {
//第一种写法,可以设置wow中属性this.$nextTick(() => {
// 在dom渲染完后,再执行动画var wow = new WOW({
boxClass: "wow", ///动画元件css类(默认为wow)animateClass: "animated", //动画css类(默认为animated)offset: 0, //到元素距离触发动画(当默认为0)mobile: true, //在移动设备上触发动画(默认为true)live: true, //对异步加载的内容进行操作(默认为true)});wow.init();});//第二种写法,默认属性// this.$nextTick(() => {
// 在dom渲染完后,再执行动画// new WOW().init();//})},
最后一步就是在html中加上class名称使用啦!!!
<div class="wow bounceIn">animation属性</div><div class="wow fadeInUp">欢迎查看百事可口的博客</div>
附上animated的各个动画class属性
fade: {
title: '淡入淡出',fadeIn: '淡入',fadeInDown: '向下淡入',fadeInDownBig: '向下快速淡入',fadeInLeft: '向右淡入',fadeInLeftBig: '向右快速淡入',fadeInRight: '向左淡入',fadeInRightBig: '向左快速淡入',fadeInUp: '向上淡入',fadeInUpBig: '向上快速淡入',fadeOut: '淡出',fadeOutDown: '向下淡出',fadeOutDownBig: '向下快速淡出',fadeOutLeft: '向左淡出',fadeOutLeftBig: '向左快速淡出',adeOutRight: '向右淡出',fadeOutRightBig: '向右快速淡出',fadeOutUp: '向上淡出',fadeOutUpBig: '向上快速淡出'},bounce: {
title: '弹跳类',bounceIn: '弹跳进入',bounceInDown: '向下弹跳进入',bounceInLeft: '向右弹跳进入',bounceInRight: '向左弹跳进入',bounceInUp: '向上弹跳进入',bounceOut: '弹跳退出',bounceOutDown: '向下弹跳退出',bounceOutLeft: '向左弹跳退出',bounceOutRight: '向右弹跳退出',bounceOutUp: '向上弹跳退出'},zoom: {
title: '缩放类',zoomIn: '放大进入',zoomInDown: '向下放大进入',zoomInLeft: '向右放大进入',zoomInRight: '向左放大进入',zoomInUp: '向上放大进入',zoomOut: '缩小退出',zoomOutDown: '向下缩小退出',zoomOutLeft: '向左缩小退出',zoomOutRight: '向右缩小退出',zoomOutUp: '向上缩小退出'},rotate: {
title: '旋转类',rotateIn: '顺时针旋转进入',rotateInDownLeft: '从左往下旋入',rotateInDownRight: '从右往下旋入',rotateInUpLeft: '从左往上旋入',rotateInUpRight: '从右往上旋入',rotateOut: '顺时针旋转退出',rotateOutDownLeft: '向左下旋出',rotateOutDownRight: '向右下旋出',rotateOutUpLeft: '向左上旋出',rotateOutUpRight: '向右上旋出'},flip: {
title: '翻转类',flipInX: '水平翻转进入',flipInY: '垂直翻转进入',flipOutX: '水平翻转退出',flipOutY: '垂直翻转退出'},strong: {
title: '强调类',bounce: '弹跳',flash: '闪烁',pulse: '脉冲',rubberBand: '橡皮筋',shake: '左右弱晃动',swing: '上下摆动',tada: '缩放摆动',wobble: '左右强晃动',jello: '拉伸抖动'
}
over!