运动原理
运动也可以叫做动画。
通过连续不断的改变物体的位置,而发生移动变化。
使用 setInterval 实现。
匀速运动:速度值一直保持不变。
多物体同时运动:将定时器绑设置为对象的一个属性。
注:物体每次运动都应该把之前的定时器清除掉。
1 | //box为绝对定位 |
边界处理
遇到边界是应该停止掉还是反弹,方向相反。
改变物体运动方向:将物体的速度值取反。
1 | //边界属性 浏览器视口宽高 |
1 | var speedX = 2 |
加速减速
加速:速度越来越快。
减速:速度越来越慢。
1 | box.timer = setInterval(function () { |
抛物线
水平方向有一速度,垂直方向有一速度,并做自由落体。
1 | var speedY = 0; |
透明度的变换
box 逐渐消失
1 | //使用css将box的opacity 设置为1 |
缓冲运动
速度一开始很大,然后慢慢变小,比较类似自然界中的缓冲运动
1 | //一开始box 在 (0,0)位置,我们将box运动到(300,0)位置 |
考虑到运动的时候可能往前,也可以能往后,增加判断
1 | //一开始box 在 (0,0)位置,我们将box运动到(300,0)位置 |
上面代码封装为函数
1 | function animate(div, targetX) { |
多属性缓冲运动函数封装
上面的封装只能固定的在 x 方向做动画
如果想让一个 div 从一个点运动到另一个点,怎么办?
比如从(0,0)到(100,200)
这个时候我们把第二个参数改为一个这样的对象 {left:100;top:200}
1 | function animate(div, obj) { |
本文作者:人模人样的搬砖老段
本文链接:DOM 高级-运动
如有错误,请及时评论或者知乎私信或者 B 站私信哦~
最后更新于:2020/01/28