WOW动画的使用

585 阅读2分钟

「这是我参与2022首次更文挑战的第9天,活动详情查看:2022首次更文挑战

大家好,我是 摸鱼小公举,真正的强者,不会怨天尤人,如果想不被别人看轻,你就只有付出比别人多十倍百倍的努力,才能站的比别人更高。上一篇文章是 vuex页面刷新数据丢失问题的多种解决方法;今天我们来学习一下WOW动画的使用法。

WOW动画的简介

github文档链接:github.com/matthieua/W…

只有向下滚动页面时才会显示 CSS 动画,其主要依赖于 animate.css 动画。

WOW对象的相关属性描述

属性描述
boxClass需要执行动画的元素的 class
animateClassanimation.css 动画的 class
offset距离可视区域多少开始执行动画
mobile是否在移动设备上执行动画
live异步加载的内容是否有效
callback每次动画开始触发的回调
scrollContainer可选滚动容器选择器

使用方法如下

1,安装 wow.js

Bower
bower install wowjs
或
NPM
npm install wowjs

2,代码设置如下

(1)HTML代码 标签盒子添加 animate.css 相关类名

以下属性的值是可以自己慢慢调的,最基础的用法只需要加上wow 动画类名就行了

<div class="wow animate__fadeInLeft " data-wow-duration="1s" data-wow-offset="200">
</div>
<div class="itemRight wow animate__fadeInUp" data-wow-duration="1s" data-wow-offset="200">
</div>

(2)JS代码

<script>
if (process.client) { //nuxt.js在vue组件中使用window对象编译报错的解决方法 (不是用nuxt来搭建项目的可忽略)
  var { WOW } = require("wowjs") // 只能用var声明
}
export default {
 这里是操作DOM元素,vue中最早能获取到元素的是mounted周期函数,即便这样还是会有获取不到DOM元素的情况所以加了$nextTick
  mounted() {
    this.$nextTick(() => {
      if (process.client) {
        new WOW({
          boxClass: "wow", // 需要执行动画的元素的 class
          animateClass: "animate__animated", // animation.css 动画的 class
          offset: 15, // 距离可视区域多少开始执行动画
          mobile: true, // 是否在移动设备上执行动画
          live: false, // 异步加载的内容是否有效
          callback: null, // 每次动画开始触发的回调
          scrollContainer: null // 可选滚动容器选择器
        }).init()
      }
    })
  }
}
</script>

效果动画如下

amimation.gif

结语:

其实自己也尝试写了类似的效果,但是各个电脑兼容的效果差强人意,以为我这边设置滚动高度写死了我电脑的,不知道怎么兼容别的类型电脑,有更好的效果demo欢迎推荐。好了文章到此就结束了,欢迎大家( 点赞+评论+关注 ) 有问题可以来互相交流一下。希望这篇文章对大家有帮助,也希望大家多多支持我,今天是我参与2022首次更文挑战的第9天,加油!