继续为大家分享一下自己的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>
以下是本人在学习专研期间写的一个动画插件,希望能帮助大家拓展一下思维,当然也可以直接使用:
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>
相关文章推荐
- 一个自己编写的象棋程序,可实现走棋谱(如炮二平五),工程完成度%96,跟大家分享一下,下一步要做残局,欢迎交流
- 分享几个开源的项目,大家交流学习一下
- 一些关于Castle + Nhibernate+ ASP.NET的资源,我收集了一下,发布出来,供大家学习方便。
- 看到一篇很好的的dom4j总结,转载一下,方便大家方便自己~
- 自己写了一个js,但是最终不能控制住最后后的提交,前面的还是比较完美,大家看到后,能帮我解决一下吗?
- 与大家分享一下200多个js技巧代码,不看别后海呀
- 找出超链接(无重复链接)-------自己有点小用,就简单写了一个,以后方便用,大家分享!
- 关于网站的推广方面,自己的一些愚见和大家分享一下。
- Hi,欢迎大家来到阿毛小猪的博客,分享自己学习中的经验,默默的前行,聆听心的声音
- 昨天与朋友晚上交流,我教给他一个我自己针对APPSTORE市场的自我锻炼法。我总结一下分享给大家。
- 非常感谢cnblogs赐予的blog空间,学习大家的技术,分享自己的经验。
- JavaScript 学习笔记之二:编写自己的jQuery扩展分页插件(分享yQuery)
- 9位长的QQ号——自己来拿吧(同学无聊用软件申请了一堆),谁拿了的在下面回复一下,方便大家check哪些已经被拿走了
- 最近学习正则表达式,接下来会跟大家交流一下
- (最近学习过程中发现的,觉得不错,和大家分享一下)MFC中OnDraw与OnPaint的区别
- 分享一个自己写的table表格排序js插件(高效简洁)
- 自己收藏在博客里的英语口语学习资料,贴出来分享给大家
- 学习JS面向对象成果 借国庆发布个最新作品与大家交流
- 学习JS面向对象成果,借国庆发布个最新作品与大家交流
- 分享一个自己写的table表格排序js插件(高效简洁)