滚动页面到指定位置动画展示-Vue自定义命令-IntersectionObserver-animate.css

本文介绍如何在Vue项目中利用IntersectionObserver和animate.css实现页面滚动到指定位置时添加动画效果。通过创建观察者,结合Vue自定义指令监听DOM元素,当元素进入视口时触发动画,并在动画结束后移除动画类,确保动画不重复播放。
摘要由CSDN通过智能技术生成

最近在做公司官网 web&H5 页面滚动显示出来给个小动画

之前了解的浏览器标准解决方案(不向下兼容)是 IntersectionObserver,是一个全局的侦听器,

但是每个页面去做一个实例去侦听当前对象也觉得太冗余了吧,并且在vue里面自己去操作dom对象也不是一个很优的选择,于是我们想到了vue自定义指令

我使用的动画是npm上下了个 animate.css, 当然你也可以自己写动画

思路:

1.创建一个观察者

2.制作vue指令,将vue返回的dom进行监听,并且写入暂存的属性值

3.well 为 IntersectionObserver 的回调参数,格式为数组,循环well

4.res 为每个 dom返回的封装对象

5.res.target 为 dom 实例 res.isIntersecting 判断是否相交

6. 添加动画 并且settimeout 延时一秒移除动画为了不重复动画,res.target.className.indexOf('animate__animated') < 0 也是为了不重复动画

let observer = new IntersectionObserver(well => {
	well.forEach(res => {
		const className = ` animate__animated ${res.target.attributes.animatename.value}`
		if(res.isIntersecting && res.target.className.indexOf('animate__animated') < 0){
			res.target.clas
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值