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

首頁 > 編程 > JavaScript > 正文

原生js實現jquery函數animate()動畫效果的簡單實例

2019-11-20 09:11:08
字體:
來源:轉載
供稿:網友

通過在公司一個月的實習,慢慢的對css跟html算是比較熟悉了,這幾天開始研究js,今天用js寫了一個jquery的animate函數,測試了下,性能還可以。個人覺得jquery并不是萬能的,因為是個框架,所以有些東西寫的比較死,就像animate函數一樣,可選的參數不多有時候可能并不能實現我們想要的效果。   

注釋的部分是用來測試用的,寫代碼的過程并不是十分順利,因為用js平時用的不是很細,都是大體知道方法,也用過,但等到真正要實現動畫函數的時候,細枝末節寫錯了就可能把人難住了。

函數里面有幾個參數解釋一下,

•obj, 函數的對象

•json, 數值對,形式{attr:”value”, attr: “value”},在這里是指要動畫對象的運動屬性

•interval, 每執行一次改變的間隔,這里改變的是對象是屬性值

•sp, 值變換的速度,使動畫具有緩沖效果,而不只是勻速不變(sp為1)的

•fn, 回調函數,執行完動畫之后的行為

代碼比較簡單,只是有幾個細節需要注意,在這里提醒一下:

•對象的屬性不必直接聲明,所以函數的第一句clearInterval(obj.timer);并不會報錯。

•必須為每一個對象分別添加一個定時器,否則互相會影響,一個定時器公用的結果是定時器的多個對象運動出現卡頓。

•son數據格式了解一下,當遍歷對象的動畫屬性的時候,需要icur != json[arr]判斷是否每一個屬性已經達到目標值。flag的作用是防止當其中某個屬性第一個達到目標值后,clearInterval(obj.timer)清除了定時器,結果其他動畫屬性并沒有達到目標值。所以在每次遍歷的時候初始化flag值為true,只要遇到一個沒有達到目標屬性的對象,就將flag置為false,直至對象的所有屬性達到目標值,清除定時器。

•speed = speed > 0 ? Math.ceil(speed): Math.floor(speed);

這一句的作用是將屬性值取整,因為屬性值除了opacity沒有小數。

•最后調用的時候注意動畫的對象,在使用for循環的時候不能隨意使用arr[i]形式,尤其是嵌套循環的時候i的值已經變成了最大值。

js

function animate(obj, json, interval, sp, fn) {  clearInterval(obj.timer);  //var k = 0;  //var j = 0;  function getStyle(obj, arr) {    if(obj.currentStyle){      return obj.currentStyle[arr];  //針對ie    } else {      return document.defaultView.getComputedStyle(obj, null)[arr];     }  }  obj.timer = setInterval(function(){    //j ++;    var flag = true;    for(var arr in json) {      var icur = 0;      //k++;      if(arr == "opacity") {        icur = Math.round(parseFloat(getStyle(obj, arr))*100);      } else {        icur = parseInt(getStyle(obj, arr));      }      var speed = (json[arr] - icur) * sp;      speed = speed > 0 ? Math.ceil(speed): Math.floor(speed);      if(icur != json[arr]){        flag = false;      }       if(arr == "opacity"){        obj.style.filter = "alpha(opacity : '+(icur + speed)+' )";        obj.style.opacity = (icur + speed)/100;      }else {        obj.style[arr] = icur + speed + "px";      }      //console.log(j + "," + arr +":"+ flag);    }    if(flag){      clearInterval(obj.timer);      //console.log(j + ":" + flag);       //console.log("k = " + k);      //console.log("j = " + j);      //console.log("DONE");      if(fn){        fn();      }    }  },interval);}

調用方式:

<script>  var move = document.getElementById("move").getElementsByTagName("li");  for(var i = 0; i < move.length; i ++){    move[i].onmouseover = function(){      var _this = this;      animate(_this, {width: 500, height: 200},10, 0.01, function(){        animate(_this, {width: 300, height: 200},10, 0.01);      });    }  }</script>

以上這篇原生js實現jquery函數animate()動畫效果的簡單實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品白嫩美女在线观看| 这里只有精品在线播放| 久久精品国产v日韩v亚洲| 成人av.网址在线网站| 国产精品第3页| 另类天堂视频在线观看| 精品女厕一区二区三区| 精品久久久久久久久久久久久| 国产精品成人久久久久| 日韩精品亚洲元码| 亚洲综合中文字幕68页| 黄色一区二区三区| 性色av一区二区三区在线观看| 琪琪亚洲精品午夜在线| 在线日韩欧美视频| 26uuu久久噜噜噜噜| 亚洲综合第一页| 日本一区二三区好的精华液| 91黑丝高跟在线| 欧美一区二区三区精品电影| 中文国产成人精品久久一| 国产伦精品免费视频| 日本精品视频在线| 国产91ⅴ在线精品免费观看| 日本精品一区二区三区在线播放视频| 国产精品一区二区三区成人| 成人精品一区二区三区| 亚洲片国产一区一级在线观看| 日韩中文字幕不卡视频| 欧美成人精品xxx| 国产精品高潮呻吟久久av黑人| 91tv亚洲精品香蕉国产一区7ujn| 欧美另类99xxxxx| 亚洲a级在线播放观看| 国产精品久久久久久久久| 欧美一区三区三区高中清蜜桃| 欧洲成人在线视频| 精品精品国产国产自在线| 亚洲欧美中文另类| 97精品在线观看| 精品在线观看国产| 精品久久久999| 国产欧美一区二区三区在线看| 久久免费国产视频| 国产免费亚洲高清| 国产精品成人国产乱一区| 亚洲精品一区二区三区婷婷月| 91精品免费看| 欧美大片免费观看在线观看网站推荐| 成人性教育视频在线观看| 深夜福利一区二区| 97久久精品国产| 久久香蕉国产线看观看av| 中文字幕视频一区二区在线有码| 欧美一区二区三区精品电影| 亚洲日韩欧美视频一区| 欧美一区深夜视频| 亚洲成人a**站| 欧美日韩久久久久| 日韩av免费一区| 欧美成年人在线观看| 亚洲japanese制服美女| 国产精品久久久久久五月尺| 97在线免费观看| 欧美精品在线视频观看| 日韩欧美大尺度| 国产精品久久久久久久久久ktv| 欧美韩国理论所午夜片917电影| 久久久精品中文字幕| 国产精品一区二区久久久| 久久精品国产欧美亚洲人人爽| 国内精品久久久久久| 亚洲亚裔videos黑人hd| 北条麻妃久久精品| 日韩欧中文字幕| 国产精品亚洲视频在线观看| 欧美国产一区二区三区| 日韩激情在线视频| 日韩成人在线视频网站| 全球成人中文在线| www.xxxx精品| 68精品久久久久久欧美| 亚洲欧美日韩一区二区三区在线| 国产精品久久久久久久av电影| 日韩电影在线观看中文字幕| 久久精品电影一区二区| 国产欧美va欧美va香蕉在线| 久操成人在线视频| 在线视频免费一区二区| 午夜伦理精品一区| 国产精品www色诱视频| 琪琪亚洲精品午夜在线| 欧美激情aaaa| 青青久久av北条麻妃黑人| 欧美日韩国产成人在线观看| 国产欧美 在线欧美| 成人亚洲激情网| 亚洲国产另类 国产精品国产免费| 日韩美女免费观看| 亚洲欧美一区二区三区久久| 成人免费视频在线观看超级碰| 一本大道亚洲视频| 欧美黄网免费在线观看| 91中文精品字幕在线视频| 欧美国产视频一区二区| 国产精品jvid在线观看蜜臀| 日韩亚洲成人av在线| 久久久久国产精品免费网站| 欧美日韩成人网| 国产精品美女www爽爽爽视频| 欧美成人亚洲成人日韩成人| 成人国内精品久久久久一区| 国产亚洲精品久久| 亚洲国产精品va在线观看黑人| 4k岛国日韩精品**专区| 欧洲一区二区视频| 狠狠色狠色综合曰曰| 8x拔播拔播x8国产精品| 日韩免费精品视频| 久久99久久99精品中文字幕| 欧美一区深夜视频| 中文字幕视频一区二区在线有码| 欧美极品欧美精品欧美视频| www.美女亚洲精品| 国产在线拍揄自揄视频不卡99| 久久影院中文字幕| 欧美亚洲一级片| 精品久久久久久久中文字幕| 亚洲免费一级电影| 精品视频在线播放| 日韩精品中文字幕视频在线| 国产综合香蕉五月婷在线| www.久久草.com| 国产98色在线| 亚洲国产又黄又爽女人高潮的| 亚洲www视频| 精品国产一区二区三区四区在线观看| 成人在线观看视频网站| 成人在线中文字幕| 欧美成人免费全部| 亚洲欧美精品中文字幕在线| 亚洲男女性事视频| 欧美激情一区二区三级高清视频| 97在线视频免费观看| 国产精品专区一| 2021久久精品国产99国产精品| 亚洲精品日韩av| 久久久av亚洲男天堂| 国产精品久久色| 亚洲成年人在线播放| 日韩黄色高清视频| 精品久久久久久久久久国产| 91成人在线播放| 欧美成人精品一区二区三区| 久久综合88中文色鬼| 国产日韩中文字幕| 午夜精品久久久久久99热| 国产精品美女www爽爽爽视频| 欧美国产在线视频| 精品五月天久久| 91在线观看免费高清完整版在线观看| 色系列之999| 最近更新的2019中文字幕| 国产精品免费一区豆花|