最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

javascript中多物体运动的实例代码

来源:懂视网 责编:小采 时间:2020-11-27 19:31:43
文档

javascript中多物体运动的实例代码

javascript中多物体运动的实例代码:本篇文章给大家带来的内容是关于javascript中多物体运动的实例代码,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。前面我们都是用定时器实现单物体运动,在项目中我们往往不是做单物体运动,而是做多物体多个值变化。这里我们将通过改变参
推荐度:
导读javascript中多物体运动的实例代码:本篇文章给大家带来的内容是关于javascript中多物体运动的实例代码,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。前面我们都是用定时器实现单物体运动,在项目中我们往往不是做单物体运动,而是做多物体多个值变化。这里我们将通过改变参

本篇文章给大家带来的内容是关于javascript中多物体运动的实例代码,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

前面我们都是用定时器实现单物体运动,在项目中我们往往不是做单物体运动,而是做多物体多个值变化。
这里我们将通过改变参数实现多物体、任意值的运动。一个运动框架,可以改变物体的宽度、高度、边框、字体大小、透明度等等。

注意:上面章节中,我们都是用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>

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

javascript中多物体运动的实例代码

javascript中多物体运动的实例代码:本篇文章给大家带来的内容是关于javascript中多物体运动的实例代码,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。前面我们都是用定时器实现单物体运动,在项目中我们往往不是做单物体运动,而是做多物体多个值变化。这里我们将通过改变参
推荐度:
标签: 运动 实现 js
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top