思路
1.首先缓动动画函数封装 ,obj目标对象 ,target目标位置,这样可以不用每次要使用动画效果的时候都写一次js代码,
2.让盒子每次移动的距离慢慢变小,速度就会慢慢落下来
3.核心算法:(目标值-现在的位置)/10作为每次移动得距离 步长(这里步长要取整)
4.停止条件:让当前盒子位置等于目标位置就停止定时器
js代码如下
function animate(obj,target){// 先清除以前得定时器,只保留当前得一个定时器执行clearInterval(obj.timer);obj.timer = setInterval(function(){// 步长值写到定时器里面,步长值改为整数,不要出现小数点得问题var step = (target - obj.offsetLeft) / 10;step = step > 0 ? il(step) : Math.floor(step);if(obj.offsetLeft == target){// 停止动画,也就是停止定时器clearInterval(obj.timer);obj.style.left = obj.offsetLeft + step + 'px';},30);}
然后调用这个函数实现缓动动画效果,
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-
本文发布于:2024-02-02 12:49:16,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170684935743909.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |