JavaScript实现窗口抖动效果

前端之家收集整理的这篇文章主要介绍了JavaScript实现窗口抖动效果前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

原理介绍

  抖动其实是往复运动的一种特殊形式,只不过往复运动是一种无摩擦力的无限运动,且以速度为参照依据;而抖动以位置作为参照依据,最终停在起始点

  在网页中最常见的一种抖动效果应该是窗口抖动提示

  抖动元素从起始点开始,先向右移动最大距离len,然后移动到对称的左边位置;然后再向右移动稍微小一点的距离,再移动到对称的左边位置;以此循环,最终元素停止在起始点

代码实现

  抖动在代码实现上,无非就是通过定时器,每隔一段时间让left或top值进行变化

  在运动实现中,有两种距离变化的思路

思路一

@H_403_27@

  每次都获取元素的当前样式,再与变化的value值进行运算

思路二

@H_403_27@

  在定时器开启之前,获取元素的初始样式,再与变化的value值进行运算

  从抖动实现上来说,使用第二种方法,把距离变化完全交给value值变化来实现较为简单

  所以,代码实现的关键就是了解value是如何变化的

  假设最远距离为目标target,同方向的距离间隔为步长step。如果用数字更直观的表示,value的值类似于4、-4、2、-2、0。所以还需要一个变量dir来控制起始抖动方向,定时器每运动一次都要对dir进行更改

= target){ step = target } div.style.left = left + value + 'px'; if(dir === -1){ step++; } dir = -dir; @H_403_27@

  将抖动效果封装为shakeMove.js

= target){ step = target } //更新样式值 obj.style[attr] = attrValue + value + 'px'; //当元素到达起始点时,停止定时器 if(step == target){ clearInterval(obj.timer); obj.timer = 0; //设置回调函数 fn && fn.call(obj); } //如果此时为反向运动,则步长值变化 if(dir === -1){ step = step + stepValue; } //改变方向 dir = -dir; },50); } @H_403_27@

实例应用

  下面利用封装的shakeMove来实现一些简单的抖动应用

<Meta charset="UTF-8"> Document
Box">
403_27@
403_27@
403_27@
403_27@
403_27@ @H_403_27@ @H_403_27@

以上所述是小编给大家介绍的JavaScript实现窗口抖动效果。编程之家 jb51.cc 收集整理的教程希望能对你有所帮助,如果觉得编程之家不错,可分享给好友!感谢支持

原文链接:https://www.f2er.com/js/45038.html

猜你在找的JavaScript相关文章