Js运动框架
2016-04-08 10:59
134 查看
<!DOCTYPE html> <html> <head> <title></title> </head> <body> <div id="div1" style="width: 100px;height: 100px;background: red;position: absolute;top:0;left: 0;"></div> </body> <script type="text/javascript"> function animate(ele,attr,value){ var speed; var timer=null; (function(){ clearInterval(timer); timer=setInterval(function(){ var now=parseInt(ele.style[attr]); speed=(value-now)/10; speed=speed>0?Math.ceil(speed):Math.floor(speed); if(now!=value){ ele.style[attr]=now+speed+'px'; }else{ clearInterval(timer); } },30); })(); } var div = document.getElementById("div1"); animate(div,'top',200); animate(div,'left',100); </script> </html>
==============================更新一下==============================
上面那个还是太挫了,看下面这个:
var getStyle = function(obj,attr){ if(obj.style[attr]){ /*内联样式*/ return obj.style[attr]; }else if(obj.currentStyle){ /*IE*/ return obj.currentStyle[attr]; }else if(document.defaultView.getComputedStyle(obj)){ /*W3C*/ return document.defaultView.getComputedStyle(obj)[attr]; }else{ return null; } } var startMove=function(obj,json,fn){ clearInterval(obj.timer); obj.timer = setInterval(function(){ var stop = true;//停止变量 for(var attr in json){ /*计算属性当前值*/ var current = 0; if(attr == 'opacity'){ current = parseInt(parseFloat(getstyle(obj,attr))*100); }else{ current = parseInt(getstyle(obj,attr)); } /*计算速度*/ var speed = (json[attr]-current)/10; speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed); /*判断是否停止*/ if(current != json[attr]){ stop = false; } /*改变属性值*/ if(attr == 'opacity'){ obj.style.filter = 'alpha(opacity:'+(current+speed)+')'; obj.style.opacity = (current+speed)/100; }else{ obj.style[attr] = current+speed+'px'; } } /*结束停止定时器*/ if( stop ) { clearInterval( obj.timer ); if(fn){ fn(); } } },100); }
相关文章推荐
- javascript设计模式(二)--闭包实现
- Javascript小笔记
- js null undefined 0
- 【笔记】 《js权威指南》- 第15章 脚本化文档 - 15.10 其他文档特性
- Ext.js多文件选择上传,
- JS获取当前对象大小以及屏幕分辨率
- 用原生JS实现查找第n次出现的子字符串
- JS跨Frame选择元素的几种方式
- 使用dom与js函数在当前页展示用户想要查看的图片
- javascript数组的属性、方法和清空-最全!!!(必看)
- jsp页面使用el按key获取map中的对应值
- json 点滴
- JS中函数参数的传递
- json
- JS在页面Frame和子Frame之间的调用
- json2xlsx AND xlsx2json 接口
- js动态生成css代码
- JSP中四种传递参数中文乱码问题
- Js的引用关系示例和总结
- 超简单的js题 学习笔记