js运动框架完美运动框架
来源:互联网 发布:华为智能家庭软件 编辑:程序博客网 时间:2024/04/29 14:08
<head> <meta charset="UTF-8"> <title>test</title> <style> * { margin: 0; padding: 0; } textarea { position: fixed; right: 0; top: 50px; } div { margin-top: 10px; width: 100px; height: 30px; background: red; border: 1px solid green; cursor: pointer; opacity: 0.3; filter: alpha(opacity=30); } </style></head><body style="height:3000px;"> <textarea name="" id="" cols="30" rows="10"></textarea> <div>div1</div> <div>div2</div> <div>div3</div> <script src="test.js"></script> <script> window.onload = function() { var oDiv1 = document.getElementsByTagName('div'); for (var i = 0; i < oDiv1.length; i++) { // 给每个元素对象设置一个定时器 // 用来结局定时器公用的问题 oDiv1[i].timer = null; oDiv1[i].onclick = function() { startMove2(this, { "width": 300, "height": 100, "opacity": 100 }, function() { // alert(); }); }; } alert(getStyle(oDiv1[0], 'opacity')); } </script></body>/** * [getStyle 获取计算出来的样式] * @param {[type]} obj [元素对象] * @param {[type]} attr [属性名] * @return {[type]} [对应属性名的值] */function getStyle(obj, attr) { /*兼容IE678*/ if (obj.currentStyle) { // IE return obj.currentStyle[attr]; } else { // 其他 return getComputedStyle(obj, false)[attr]; }}/** * [startMove 完美欲动框架] * @param {[Ojbect]} obj [description] * @param {[Ojbect json]} jsonObj [json对象] * @return {[type]} [没有返回值] */function startMove2(obj, jsonObj, fn) { clearInterval(obj.timer); var flag = true; obj.timer = setInterval(function() { for (var attr in jsonObj) { // 获取当前值 if (attr == 'opacity') { // 因为opacity是小数,所以用 parseFloat // 用parseFloat之后会出现,52.00000000000001的情况,所以要加上Math.round // 这里很奇怪 parseInt(parseFloat(getStyle(obj, attr) * 100));在谷歌里面不兼容 // 其他浏览器都得到了很好的兼容 var curr = Math.round(parseFloat(getStyle(obj, attr) * 100)); } else { var curr = parseInt(getStyle(obj, attr)); }; // 求速度 var speed = (jsonObj[attr] - curr) / 6; speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed); // 检测停止 if (jsonObj[attr] != curr) { flag = false; } if (attr == 'opacity') { obj.style.opacity = (curr + speed) / 100; obj.style.filter = 'filter(alpha=' + (curr + speed) + ')'; } else { obj.style[attr] = curr + speed + 'px'; }; if (flag) { clearInterval(obj.timer); if (fn) { fn(); } } console.log(attr + ": " + curr); } }, 30);}
0 0
- js运动-完美运动框架
- JS完美运动框架
- JS完美运动框架
- 完美运动框架【js】
- JS完美运动框架
- JS完美运动框架
- js运动框架完美运动框架
- js运动技术--完美运动框架
- 完美运动(链式运动)JS框架
- JS的完美运动框架
- JS中的完美运动框架
- js完美运动框架最终版
- js-完美物体运动框架
- 原生Js完美运动框架(缓冲运动和弹性运动)
- js运动框架完美运动框架2--这个才有效
- JS 运动框架(3) 完美运动框架
- 运动框架改进之完美运动框架 -纯js
- 完美运动框架
- Java内存泄露
- CCS 6.0.1 断点(取消后一直存在)及底层代码问题
- eclipse一闪而过 启动失败
- Windows10 如何会成为微软的新起点?
- 保存网页TypeError: must be str, not bytes
- js运动框架完美运动框架
- Activity间的数据传递
- zoj3299 Fall the Brick
- Windows10 如何会成为微软的新起点?
- Objective-c NSMutableData和NSData常用操作
- python游戏:兔子与獾
- Job found still running after platform shutdown. Jobs should be canceled by the plugin that sched
- C#实现打印与打印预览功能
- MD5