国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

JS運動特效之鏈式運動分析

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

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

接著前面一篇《JS運動特效之任意值添加運動的方法》繼續折騰

鏈式運動:一個運動接著一個運動。比如:鼠標移入div先讓寬變大,接著在讓高變大,接著在讓透明度變化等等一系列運動連著做。廢話不多說,上栗子!!

當鼠標移入div的時候,div先變寬,在變高,然后改變透明度;移出又逐次恢復到原樣;

實現鏈式運動,需要對上一篇中的startMove() 函數繼續做改進

function startMove(obj,attr,iTarget,fn) 多傳入一個fn參數,表示當一個運動結束之后,繼續進行下一個運動,當然還需要判斷一下,如果有下一個運動,就執行下一個運動,如果沒有就繼續向下執行

if(fn){  fn();}

完整測試代碼:

HTML部分:

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

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,function () {     startMove(oDiv,'height',300, function () {      startMove(oDiv,'opacity',30);     });    });   }   oDiv.onmouseout = function () {    startMove(oDiv,'opacity',100, function () {     startMove(oDiv,'height',200, function () {      startMove(oDiv,'width',200);     });    });   }  }  function getStyle(obj,attr){   return getComputedStyle ? getComputedStyle(obj,false)[attr] : obj.currentStyle[attr];  }  function startMove(obj,attr,iTarget,fn) {//fn:執行下一個運動的函數   clearInterval(obj.timer);   obj.timer = setInterval(function () {    var objAttr = 0;    if(attr == "opacity"){     objAttr = Math.round(parseFloat(getStyle(obj,attr))*100);    }else{     objAttr = parseInt(getStyle(obj,attr));    }    var iSpeed = (iTarget -objAttr)/10;    iSpeed = iSpeed>0 ?Math.ceil(iSpeed):Math.floor(iSpeed);    if(objAttr == iTarget){     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程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 军事| 延长县| 柯坪县| 宁津县| 临漳县| 盘山县| 临洮县| 上思县| 西平县| 丹东市| 虞城县| 增城市| 涡阳县| 高邑县| 图木舒克市| 深圳市| 府谷县| 盐边县| 敦煌市| 交口县| 乌兰察布市| 安宁市| 昌宁县| 嘉鱼县| 塘沽区| 郧西县| 綦江县| 五原县| 芦山县| 松阳县| 宁蒗| 泽普县| 咸阳市| 夏河县| 昌吉市| 全州县| 岐山县| 乌鲁木齐县| 靖边县| 西贡区| 梁河县|