vue3 + wow + animate

vue2 与 vue3 中引入animate 操作一样,使用方法可见 animate官网.

npm 安装 animate

npm install animate.css --save

在main.js中引入animate.css

import 'animate.css'

接下来vue2 与 vue3 使用wow略有不同

vue2使用wow

// 安装 wowjs
npm install wowjs --save-dev

在文件中使用wowjs
1、在 main.js 中 全局引入 wowjs

import wow from 'wowjs'
Vue.prototype.$wow = wow

在需要加载动画的 .vue文件中使用

mounted() {
  new this.$wow.WOW().init()
}

2、在需要的地方引入wowjs

import {WOW} from 'wowjs' 
mounted() { new WOW().init() }import wow from 'wowjs' 
mounted() { new wow.WOW().init() }

vue3引入wowjs

按照vue2的方式引入wowjs,会报错 Cannot set property ‘getPropertyValue’ of undefined,如图:
在这里插入图片描述
经过查看wowjs代码,通过console.log(this),发现wowjs中 this对象undefined

后续的解决方案是:

方案一:

将wow.js文件放在项目中的public文件中,并在index.html文件中引入

<script type="text/javascript" src="public/wow.js"></script>
<script type="text/javascript">
  new WOW().init()
</script>

使用动画的 .vue,正常使用就行

<p class="wow animate__animated animate__fadeInLeft">
	<img src="../../assets/images/images/img1.png">
</p>

方案二:
将wow.js放在assets文件中(根据自己项目习惯,将wowjs放在项目中)

在需要动画效果的 .vue 文件中引入wow.js文件

import '@/assets/wow.js'
mounted() {
  new WOW().init()
}

重点在于修改wow.js文件
非压缩wow.js文件中,找到最后一行,call(this)

call(this)中的 this 改为 window 即
call(window)

最后,本想不修改wow.js文件,想着引入wow后,改变其this指向,奈何功力不够,还未成功,欢迎大家给出意见,后续修改成功,会补充到此文章中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值