亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

JS運動特效之同時運動實現方法分析

2019-11-19 14:29:00
字體:
來源:轉載
供稿:網友

本文實例講述了JS運動特效之同時運動實現方法。分享給大家供大家參考,具體如下:

接著上一篇 《JS運動特效之鏈式運動》繼續折騰

上一篇中我們的運動框架,可以完美的實現讓一個物體先變寬,在變高,在變透明度.....,看似很完美了!

貌似可以喝喝茶看看美女了。但是老板突然說,讓你同時改變一個物體的寬高和透明度,心碎了一地?。?!

拿過之前的運動框架發現,無法實現讓div同時又變寬,又變高,有變透明度??!最后無能為力,只好有請JSON大神出場了,不認識json的小伙伴們就找度娘問一下吧!

function startMove(obj,attr,iTarget,fn)

之前的startMove()函數里都是傳入一個attr屬性,在傳入一個iTarget目標值,但是我們有個JSON這個神器之后,我們可以把屬性和目標值,一對對放在JSON里,然后再startMove里只傳入json來代替之前的attr和iTarget

比如我們想要改變寬,高,透明度,那么就把他們放入JSON : {width:300,height:300,opacity:30}

然后用for..in遍歷這個json就可以得到相應的屬性和值了,那么在運動框架程序中該怎么修改那??

先簡單的測試說明一下json

<script>  var json = {width:200,height:300,opacity:30};  for(attr in json){    alert("屬性是:" + attr+ "--目標值"+json[attr]);  }</script>

有上面的彈出結果可以看出,json里的widht,height,opacity就是對應的屬性名字,200,300,30對于的就是目標值,遍歷這個json對象,可以看出attr就對應的是各個屬性名,而json[attr]就對應各個目標值,看到這里應該就大概明白怎么修改了吧!

1. 首先function startMove(obj,attr,iTarget,fn)中attr,iTarget干掉,傳入一個json對象

function startMove(obj,json,fn)

2.接著在定時器里遍歷這個json看看都哪些屬性需要變化

function startMove(obj,json,fn) {//fn:執行下一個運動的函數      clearInterval(obj.timer);      obj.timer = setInterval(function () {       for(key in json){        //... 用key代替之前傳入的屬性,json[atrr]代替之前的目標值    // 也就是把之前startMove函數里的attr改寫成key,iTarget改寫成json[atrr]    // 但是為了方便雖好把for in里的key的名字直接改寫成attr就好了,for(attr in json)這樣就不要一個個去改寫startMove里的attr,省事       }      },30);}

完整測試代碼如下:

HTML部分:

<div id="div1"></div>

css部分:

<style>    #div1{      width: 200px;height: 200px;      background: green;    }</style>

js部分:

<script>    window.onload = function(){      var oDiv = document.getElementById('div1');      oDiv.onmouseover = function () {        startMove(oDiv,{width:300,height:300,opacity:30});      }      oDiv.onmouseout = function () {        startMove(oDiv,{width:200,height:200,opacity:100});      }    }    function getStyle(obj,attr){      return getComputedStyle ? getComputedStyle(obj,false)[attr] : obj.currentStyle[attr];    }    function startMove(obj,json,fn) {//json代替了原來的attr和iTarger參數      clearInterval(obj.timer);      obj.timer = setInterval(function () {       for(attr in json){         var objAttr = 0;         if(attr == "opacity"){ // 由于for in里的key名字是attr所以這里不用替換           objAttr = Math.round(parseFloat(getStyle(obj,attr))*100);         }else{           objAttr = parseInt(getStyle(obj,attr));         }         var iSpeed = (json[attr] -objAttr)/10;// 由之前的iTarget替換成了json[attr]         iSpeed = iSpeed>0 ?Math.ceil(iSpeed):Math.floor(iSpeed);         if(objAttr == json[attr]){           clearInterval(obj.timer);           if(fn){// 如果傳了 “下一個運動的函數” 就執行             fn();           }         }else{           if(attr == "opacity"){             obj.style.filter = 'alpha(opacity:'+(objAttr+iSpeed)+')';             obj.style.opacity = (objAttr+iSpeed)/100;           }else{             obj.style[attr] = objAttr+iSpeed+'px';           }         }       }      },30);    }</script>

到這里我們的運動框架幾乎接近完美了,但是還有一個小問題,什么問題那?下回繼續

更多關于JavaScript相關內容感興趣的讀者可查看本站專題:《JavaScript運動效果與技巧匯總》、《JavaScript切換特效與技巧總結》、《JavaScript查找算法技巧總結》、《JavaScript動畫特效與技巧匯總》、《JavaScript錯誤與調試技巧總結》、《JavaScript數據結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》及《JavaScript數學運算用法總結

希望本文所述對大家JavaScript程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美日韩加勒比精品一区| 日韩成人在线播放| 亚洲国内精品在线| 欧美黑人xxxⅹ高潮交| 91免费看片在线| 久久久国产精品视频| 久久免费精品视频| 中文字幕成人在线| 久久久精品国产一区二区| 伊人激情综合网| 91在线网站视频| 26uuu国产精品视频| 亚洲色图18p| 国产成人小视频在线观看| 国产亚洲欧美aaaa| 91国偷自产一区二区三区的观看方式| 日韩影视在线观看| 国产一区二区三区欧美| 91美女福利视频高清| 欧美激情亚洲自拍| 国产成人小视频在线观看| 国产精品成人av在线| 欧美一区二区三区免费视| 国产精品18久久久久久首页狼| 午夜精品免费视频| 精品欧美aⅴ在线网站| 亚洲激情国产精品| 中文字幕精品国产| 欧美片一区二区三区| 欧美整片在线观看| 亚洲精品小视频在线观看| 日韩av在线直播| 亚洲精品日韩av| 国产一区二区av| 国产一区二区三区18| 国产综合视频在线观看| 欧美色播在线播放| 亚洲美女性视频| 欧美在线www| 久久久在线免费观看| 国产精品久久97| 欧美日韩午夜视频在线观看| 欧美日韩国产限制| 2019中文在线观看| 国产精品免费网站| 亚洲性日韩精品一区二区| 92看片淫黄大片看国产片| 亚洲性xxxx| 欧美性受xxx| 成人亚洲综合色就1024| 91国产美女在线观看| 亚洲国产欧美自拍| 国产精品久久久久久久久久久不卡| 亚洲aa中文字幕| 午夜欧美不卡精品aaaaa| 欧美亚洲成人网| 亚洲级视频在线观看免费1级| 国产欧美在线观看| 久久久久日韩精品久久久男男| 国产视频久久久久久久| 欧美日韩亚洲高清| 51ⅴ精品国产91久久久久久| 国产精品久久久久久久久免费| 国产精品欧美日韩| 日韩精品在线观看视频| 精品视频一区在线视频| 中文字幕成人精品久久不卡| 亚洲精品www久久久久久广东| 成人乱色短篇合集| 在线性视频日韩欧美| 久久这里只有精品视频首页| 国产精品美女视频网站| 欧美成人合集magnet| 国产91成人video| 久热精品视频在线观看一区| 欧美日韩亚洲系列| 在线精品视频视频中文字幕| 中文字幕少妇一区二区三区| 欧美黑人国产人伦爽爽爽| 国产精品女主播视频| 亚洲福利视频免费观看| 亚洲国产精品va在线观看黑人| 亚洲欧洲午夜一线一品| 亚洲欧美国产一本综合首页| 96精品久久久久中文字幕| 国产欧美一区二区三区久久人妖| 日韩动漫免费观看电视剧高清| 亚洲另类激情图| 中文日韩在线视频| 黑人狂躁日本妞一区二区三区| 日韩久久精品成人| 亚洲午夜久久久久久久| 国产精品欧美在线| 97国产精品人人爽人人做| 欧美多人乱p欧美4p久久| 亚洲欧美日韩成人| 91久久精品久久国产性色也91| 57pao成人永久免费视频| 欧美高清理论片| 国产精品一区二区三区毛片淫片| 成人性生交大片免费看小说| 欧美日韩中国免费专区在线看| 精品久久久久久久久久| 不卡av电影院| …久久精品99久久香蕉国产| 亚洲美女性生活视频| 日韩成人激情影院| 欧美激情视频在线| 久久影视电视剧凤归四时歌| 欧美xxxx做受欧美.88| 成人精品一区二区三区电影免费| 精品少妇v888av| 欧美中文在线字幕| 亚洲美女福利视频网站| 久久成人这里只有精品| 国产亚洲欧美日韩精品| 久久精品成人动漫| 久久久久久91| 日韩日本欧美亚洲| 国产精品扒开腿爽爽爽视频| 欧洲亚洲免费视频| 91色视频在线导航| 最近2019中文字幕一页二页| 国产成+人+综合+亚洲欧洲| 欧美成年人视频| 欧美大片在线免费观看| 日韩国产欧美精品在线| 国产成人av在线| 国产精品9999| 中文字幕欧美亚洲| www.99久久热国产日韩欧美.com| 欧美日韩国产91| 国产一区二区三区在线播放免费观看| 日韩av在线高清| 亚洲视频在线观看免费| 北条麻妃一区二区三区中文字幕| 亚洲国产精品小视频| 国产日韩欧美中文| 亚洲夜晚福利在线观看| 一区二区三区亚洲| 精品国产一区二区三区久久狼5月| 成人在线中文字幕| 国产成人精品电影久久久| xxxxx成人.com| 国产欧美日韩亚洲精品| 色中色综合影院手机版在线观看| 日韩va亚洲va欧洲va国产| 高潮白浆女日韩av免费看| 久久99国产精品久久久久久久久| 成人性生交大片免费看视频直播| 欧美在线国产精品| 国产精品专区第二| 欧美黑人狂野猛交老妇| 亚洲精品成a人在线观看| 亚洲国产精品字幕| 国内精品模特av私拍在线观看| 欧美激情精品久久久久久免费印度| 久色乳综合思思在线视频| 久久久国产精品一区| 亚洲天堂成人在线视频| 欧美成人在线影院| 国产91成人在在线播放| 精品综合久久久久久97| 国产精品久久久久久久久久99|