您的位置:首页 > Web前端 > JavaScript

继续为大家分享一下自己的js小插件,方便大家学习交流

2016-12-06 21:16 525 查看
关于js运动特效,是大家一直都在苦苦专研一个有趣而又头疼的问题,尤其对于初学者而言!虽然各种插件和JQ为我们提供许多特效,但是原生js我们千万不能忘记!

以下是本人在学习专研期间写的一个动画插件,希望能帮助大家拓展一下思维,当然也可以直接使用:

1.弹性运动:

<script>
//弹性运动:obj:运动对象,target:移动的目标点,attr:left或者top,posiDis:当前所在的位置offsetLeft或offsetTop;
function flexMove(obj,target,attr,posiDis){
var flag = 0;
var speed = 0;
clearInterval(obj.timer);
var begain = obj[posiDis];
obj.timer = setInterval(function(){
//模拟加速减速
speed +=(target - obj[posiDis])/5;
//模拟摩擦力
speed *= 0.7;
flag +=speed;

if (Math.abs(flag-target) <1 && Math.abs(speed<1)) {
//速度和距离目标点偏差过小同时满足,清空定时器
clearInterval(obj.timer);
obj.style[attr] = target + 'px';//为了防止像素偏差一点,最后定位到目标位置
}
else{
obj.style[attr] = begain + flag + 'px';
}
},30)
}
</script>2.碰撞运动
<script>
//弹性运动:obj:运动对象,target:移动的目标点,attr:left或者top,posiDis:当前所在的位置offsetLeft或offsetTop;
function flexMove(obj,target,attr,posiDis){
var flag = 0;
var speed = 0;
clearInterval(obj.timer);
var begain = obj[posiDis];
obj.timer = setInterval(function(){
//模拟加速减速
speed +=(target - obj[posiDis])/5;
//模拟摩擦力
speed *= 0.7;
flag +=speed;

if (Math.abs(flag-target) <1 && Math.abs(speed<1)) {
//速度和距离目标点偏差过小同时满足,清空定时器
clearInterval(obj.timer);
obj.style[attr] = target + 'px';//为了防止像素偏差一点,最后定位到目标位置
}
else{
obj.style[attr] = begain + flag + 'px';
}
},30)
}
</script>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐