javascript中多物体运动的实例代码
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript中多物体运动的实例代码,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3066字,纯文字阅读大概需要5分钟。
内容图文
![javascript中多物体运动的实例代码](/upload/InfoBanner/zyjiaocheng/285/f50e072b33314147821f52fa590099c5.jpg)
前面我们都是用定时器实现单物体运动,在项目中我们往往不是做单物体运动,而是做多物体多个值变化。
这里我们将通过改变参数实现多物体、任意值的运动。一个运动框架,可以改变物体的宽度、高度、边框、字体大小、透明度等等。
注意:上面章节中,我们都是用offsetWidth(offsetWidth包含边框和padding等)等设置、获取样式,因为使用方式简单,但是如果物体包含border和padding等样式的时候,就会报错,所以这里我们用更加严谨的方式currentStyle和getComputedStyle来获取样式。
注意:在电脑中我们并不能真正的存储一些具体的数值,我们存储的是一些近似值,比如0.07*100,最终结果并不是7,所以在下面我们会四舍五入转换为整数。
注意注意:在多物体运动时,定时器和一些参数一定不要共用,否则会到这这个运动没有完成就被清除然后触发了其他运动,一些参数也不可以共用,会导致一些参数没有达到固定值就被重新操作。所以,下例中的定时器都是放在元素上。
下面是我们做的一个例子
<!DOCTYPE html> <html> <head> <title>运动改变宽度、高度、边框、字体、透明度</title> <style> div { width: 200px; height: 200px; background: red; margin: 10px; float: left; border:1px solid #000; font-size:14px; } div:nth-child(5) { filter: alpha(opacity:30); opacity:0.3; } </style> <script> window.onload = function() { var oDiv1 = document.getElementById("div1"); var oDiv2 = document.getElementById("div2"); var oDiv3 = document.getElementById("div3"); var oDiv4 = document.getElementById("div4"); var oDiv5 = document.getElementById("div5"); oDiv1.onmouseover=function(){ startMove(this,"height", 400) } oDiv1.onmouseout=function(){ startMove(this,"height", 200) } oDiv2.onmouseover=function(){ startMove(this,"width", 400) } oDiv2.onmouseout=function(){ startMove(this, "width",200) } oDiv3.onmouseover=function(){ startMove(this,"fontSize", 50) } oDiv3.onmouseout=function(){ startMove(this, "fontSize",14) } oDiv4.onmouseover=function(){ startMove(this,"borderWidth", 100) } oDiv4.onmouseout=function(){ startMove(this, "borderWidth",1) } oDiv5.onmouseover=function(){ startMove(this,"opacity", 100) } oDiv5.onmouseout=function(){ startMove(this, "opacity",30) } } function getStyle(obj,name){ if(obj.currentStyle){ return obj.currentStyle[name]; } else{ return getComputedStyle(obj,false)[name]; } } function startMove(obj, attr, iTarget) { clearInterval(obj.timer); obj.timer = setInterval(function() { var cur=0; if(attr==="opacity"){ cur=Math.round(parseFloat(getStyle(obj,attr))*100);//有可能会出现误差0.07*100 } else{ cur=parseInt(getStyle(obj,attr)); } var speed = (iTarget - cur) / 6; speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed); if (cur === iTarget) { clearInterval(obj.timer); } else { if(attr==="opacity"){ obj.style.filter="alpha(opacity:"+cur+speed+")"; obj.style.opacity=(cur+speed)/100; }else{ obj.style[attr]=cur+speed+"px"; } } }, 30) } </script> </head> <body> <div id="div1">变宽</div> <div id="div2">变高</div> <div id="div3">文字变大</div> <div id="div4">borderwidth</div> <div id="div5">透明度</div> </body> </html>
相关推荐:
javascript多物体运动实现方法分析_javascript技巧
JS实现多物体运动实例分享
以上就是javascript中多物体运动的实例代码的详细内容,更多请关注Gxl网其它相关文章!
内容总结
以上是互联网集市为您收集整理的javascript中多物体运动的实例代码全部内容,希望文章能够帮你解决javascript中多物体运动的实例代码所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。