js-网页特效 —— 动画函数封装

四、动画函数封装

4.1、动画实现原理

核心原理:通过定时器setInterval0不断移动盒子位置。

实现步骤:

1.获得盒子当前位置。

2.让盒子在当前位置加上1个移动距离。

3.利用定时器不断重复这个操作

4.加一个结束定时器的条件

5.注意:此元素需要添加定位,才能使用element.style.left

4.2、动画函数的封装

注意函数需要传递2个参数,动画对象移动到的距离。

4.3、动画函数给不同元素记录不同定时器

如果多个元素都使用这个动画函数,每次都要var声明定时器。我们可以给不同的元素使用不同的定时器(自己专门用自己的定时器)。

核心原理:利用JS是一门动态语言,可以很方便的给当前对象添加属性。

在这里插入图片描述
在这里插入图片描述

(利用对象)

例子:

在这里插入图片描述

4.4、缓动动画原理

缓动动画就是让元素运动速度有所变化,最常见的是让速度慢慢停下来

思路:

1.让盒子每次移动的距离慢慢变小,速度就会慢慢落下来。

2.核心算法: (目标值 - 现在的位置) / 10 做为每次移动的距离步长(Math.ceil()往正大取整,Math.floor()负小取)。

3.停止的条件是:让当前盒子位置等于目标位置就停止定时器。

4.步长值写到定时器的里面。

例如:
在这里插入图片描述

4.6、动画函数添加回调函数

回调函数原理:函数可以作为一个参数。 将这个函数作为参数传到另-个函数里面,当那个函数执行完之后再执行传进去的这个函数,这个过程就叫做回调

回调函数写的位置:定时器结束的位置。

在动画函数后面加一个参数,将此参数传一个函数进去。即为

在这里插入图片描述
在这里插入图片描述

4.7动画函数封装到单独JS文件里面

因为以后经常使用这个动画函数,可以单独封装到一个s文件里面,使用的时候引用这个JS文件即可。

4.8、节流阀

防止轮播图按钮连续点击造成播放过快。

节流阀目的:当上一个函数动画内容执行完毕,再去执行下一个函数动画,让事件无法连续触发。

核心实现思路:利用回调函数,添加一个变量来控制,锁住函数和解锁函数。

开始设置一个变量 var flag = true;

if(flag) {flag= false; do something} //关闭水龙头

利用回调函数动画执行完毕, flag= true 打开水龙头

短路运算:

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值