最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
當(dāng)前位置: 首頁 - 科技 - 知識(shí)百科 - 正文

javascript中多物體運(yùn)動(dòng)的實(shí)例代碼

來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 19:31:43
文檔

javascript中多物體運(yùn)動(dòng)的實(shí)例代碼

javascript中多物體運(yùn)動(dòng)的實(shí)例代碼:本篇文章給大家?guī)淼膬?nèi)容是關(guān)于javascript中多物體運(yùn)動(dòng)的實(shí)例代碼,有一定的參考價(jià)值,有需要的朋友可以參考一下,希望對(duì)你有所幫助。前面我們都是用定時(shí)器實(shí)現(xiàn)單物體運(yùn)動(dòng),在項(xiàng)目中我們往往不是做單物體運(yùn)動(dòng),而是做多物體多個(gè)值變化。這里我們將通過改變參
推薦度:
導(dǎo)讀javascript中多物體運(yùn)動(dòng)的實(shí)例代碼:本篇文章給大家?guī)淼膬?nèi)容是關(guān)于javascript中多物體運(yùn)動(dòng)的實(shí)例代碼,有一定的參考價(jià)值,有需要的朋友可以參考一下,希望對(duì)你有所幫助。前面我們都是用定時(shí)器實(shí)現(xiàn)單物體運(yùn)動(dòng),在項(xiàng)目中我們往往不是做單物體運(yùn)動(dòng),而是做多物體多個(gè)值變化。這里我們將通過改變參

本篇文章給大家?guī)淼膬?nèi)容是關(guān)于javascript中多物體運(yùn)動(dòng)的實(shí)例代碼,有一定的參考價(jià)值,有需要的朋友可以參考一下,希望對(duì)你有所幫助。

前面我們都是用定時(shí)器實(shí)現(xiàn)單物體運(yùn)動(dòng),在項(xiàng)目中我們往往不是做單物體運(yùn)動(dòng),而是做多物體多個(gè)值變化。
這里我們將通過改變參數(shù)實(shí)現(xiàn)多物體、任意值的運(yùn)動(dòng)。一個(gè)運(yùn)動(dòng)框架,可以改變物體的寬度、高度、邊框、字體大小、透明度等等。

注意:上面章節(jié)中,我們都是用offsetWidth(offsetWidth包含邊框和padding等)等設(shè)置、獲取樣式,因?yàn)槭褂梅绞胶唵?,但是如果物體包含border和padding等樣式的時(shí)候,就會(huì)報(bào)錯(cuò),所以這里我們用更加嚴(yán)謹(jǐn)?shù)姆绞絚urrentStyle和getComputedStyle來獲取樣式。
注意:在電腦中我們并不能真正的存儲(chǔ)一些具體的數(shù)值,我們存儲(chǔ)的是一些近似值,比如0.07*100,最終結(jié)果并不是7,所以在下面我們會(huì)四舍五入轉(zhuǎn)換為整數(shù)。
注意注意:在多物體運(yùn)動(dòng)時(shí),定時(shí)器和一些參數(shù)一定不要共用,否則會(huì)到這這個(gè)運(yùn)動(dòng)沒有完成就被清除然后觸發(fā)了其他運(yùn)動(dòng),一些參數(shù)也不可以共用,會(huì)導(dǎo)致一些參數(shù)沒有達(dá)到固定值就被重新操作。所以,下例中的定時(shí)器都是放在元素上。

下面是我們做的一個(gè)例子

<!DOCTYPE html>
<html>

<head>
 <title>運(yùn)動(dòng)改變寬度、高度、邊框、字體、透明度</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);//有可能會(huì)出現(xiàn)誤差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>

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

javascript中多物體運(yùn)動(dòng)的實(shí)例代碼

javascript中多物體運(yùn)動(dòng)的實(shí)例代碼:本篇文章給大家?guī)淼膬?nèi)容是關(guān)于javascript中多物體運(yùn)動(dòng)的實(shí)例代碼,有一定的參考價(jià)值,有需要的朋友可以參考一下,希望對(duì)你有所幫助。前面我們都是用定時(shí)器實(shí)現(xiàn)單物體運(yùn)動(dòng),在項(xiàng)目中我們往往不是做單物體運(yùn)動(dòng),而是做多物體多個(gè)值變化。這里我們將通過改變參
推薦度:
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top