最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript探測CSS動畫是否已經(jīng)完成的方法

 更新時間:2016年08月30日 09:08:16   作者:愚人的一天  
這篇文章主要為大家詳細介紹了JavaScript探測CSS動畫是否已經(jīng)完成的方法,感興趣的小伙伴們可以參考一下

不啰嗦上代碼:

WN:(function(){
      var el = $('<fakeelement>'),
        transition="transition",
        transitionEnd,
        animEvent={'start':null,'iteration':null,'end':null},
        vendorPrefix;
        
      transition = transition.charAt(0).toUpperCase() + transition.substr(1);
      
      vendorPrefix=(function(){//現(xiàn)在的opera也是webkit
        var i=0, vendor=["Moz", "Webkit", "Khtml", "O", "ms"];
        while (i < vendor.length) {
          if (typeof el.css(vendor[i] + transition) === "string"){
            return vendor[i];
          }
          i++;
        }
        return false;
      })();
      
      transitionEnd=(function(){
        var transEndEventNames = {
          WebkitTransition : 'webkitTransitionEnd',
          MozTransition  : 'transitionend',
          OTransition   : 'oTransitionEnd otransitionend',
          transition    : 'transitionend'
        }
        for(var name in transEndEventNames){
          if(typeof el.css(name) === "string"){
            return transEndEventNames[name];
          }
        }
      })();
      
      animEvent.end=(function(){
        var animEndEventNames = {
          WebkitAnimation : 'webkitAnimationEnd',
          animation   : 'animationend'
        }
        for(var name in animEndEventNames){
          if(typeof el.css(name) === "string"){
            return animEndEventNames[name];
          }
        }
      })();
      
      animEvent.iteration=(function(){
        var animIterationEventNames = {
          WebkitAnimation : 'webkitAnimationIteration',
          animation   : 'animationiteration'
        }
        for(var name in animIterationEventNames){
          if(typeof el.css(name) === "string"){
            return animIterationEventNames[name];
          }
        }
      })();
      
      animEvent.start=(function(){
        var animStartEventNames = {
          WebkitAnimation : 'webkitAnimationStart',
          animation   : 'animationstart'
        }
        for(var name in animStartEventNames){
          if(typeof el.css(name) === "string"){
            return animStartEventNames[name];
          }
        }
      })();
      
      return {
        called:false,
        addTranEvent:function(elem,fn,duration){
          var self = this;
          var fncallback = function(){
            if(!self.called){
              fn();
              self.called = true;
            }
          };
          function hand(){  
            elem.on(transitionEnd,function(){
              //elem.unbind(transitionEnd,arguments.callee);
              fncallback();
            });
          }
          setTimeout(hand,duration);
        },
        addAnimEvent:function(elem,name,fn){
          elem.on(animEvent[name],fn);
        },      
        removeAnimEvent:function(elem,name,fn){
          elem.unbind(animEvent[name],fn);
        },
        setStyleAttribute:function(elem,val){
          if(Object.prototype.toString.call(val) === "[object Object]"){
            for(var name in val){
              if(/^transition|animation|transform/.test(name)){
                var styleName=name.charAt(0).toUpperCase() + name.substr(1);
                elem.css(vendorPrefix+styleName,val[name]);
              }else{
                elem.css(name,val[name]);
              }
            }
          }
        }
      };
    })(),

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 微信小程序裁剪頭像插件使用方法詳解

    微信小程序裁剪頭像插件使用方法詳解

    這篇文章主要為大家詳細介紹了微信小程序裁剪頭像插件的使用方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • 探討javascript是不是面向?qū)ο蟮恼Z言

    探討javascript是不是面向?qū)ο蟮恼Z言

    這篇文章主要是介紹了javascript是不是面向?qū)ο蟮恼Z言。需要的朋友可以過來參考下,希望對大家有所幫助
    2013-11-11
  • JavaScript中閉包的4個有用技巧分享

    JavaScript中閉包的4個有用技巧分享

    當談到JavaScript編程中的高級概念和技巧時,閉包(Closures)是一個重要而有趣的主題,閉包是一種函數(shù)與其創(chuàng)建時的詞法環(huán)境的組合,它允許我們捕獲和保留局部變量,并在函數(shù)之外使用它們,在這篇文章中,我們將深入探討JavaScript中閉包的4種有用技巧
    2023-10-10
  • 使用JavaScript和MQTT開發(fā)物聯(lián)網(wǎng)應(yīng)用示例解析

    使用JavaScript和MQTT開發(fā)物聯(lián)網(wǎng)應(yīng)用示例解析

    這篇文章主要介紹了使用JavaScript和MQTT開發(fā)物聯(lián)網(wǎng)應(yīng)用示例解析,文章通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2020-08-08
  • ECharts坐標軸刻度數(shù)值處理方法例子

    ECharts坐標軸刻度數(shù)值處理方法例子

    這篇文章主要給大家介紹了關(guān)于ECharts坐標軸刻度數(shù)值處理的相關(guān)資料,文章介紹了一個用于圖表Y軸數(shù)值簡寫的函數(shù),它可以將大數(shù)值轉(zhuǎn)換為K、M、B等簡寫形式,從而使圖表更加美觀和易讀,需要的朋友可以參考下
    2024-11-11
  • Javascript 判斷函數(shù)類型完美解決方案

    Javascript 判斷函數(shù)類型完美解決方案

    在判斷函數(shù)類型時,我們通常使用typeof方法,一般情況下,它會得到我們所預(yù)想的效果。
    2009-09-09
  • 提高Web性能的前端優(yōu)化技巧總結(jié)

    提高Web性能的前端優(yōu)化技巧總結(jié)

    這篇文章講述可以幫助 改善優(yōu)化前端的技術(shù),非常有用。主要內(nèi)容有清理代碼、壓縮圖片、壓縮外部資源、使用CDN,以及一些其它方法。這些方法會為你的網(wǎng)站帶顯著的速度提升和整體性能提升。下面跟著小編一起來看下吧
    2017-02-02
  • JavaScript位置參數(shù)實現(xiàn)原理及過程解析

    JavaScript位置參數(shù)實現(xiàn)原理及過程解析

    這篇文章主要介紹了JavaScript位置參數(shù)實現(xiàn)原理及過程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友可以參考下
    2020-09-09
  • JavaScript調(diào)用傳遞變量參數(shù)的相關(guān)問題及解決辦法

    JavaScript調(diào)用傳遞變量參數(shù)的相關(guān)問題及解決辦法

    本文給大家介紹javascript調(diào)用傳遞變量參數(shù)的相關(guān)問題及解決辦法,涉及到j(luò)s調(diào)用傳遞參數(shù)相關(guān)知識,對js調(diào)用傳遞參數(shù)感興趣的朋友一起學(xué)習吧
    2015-11-11
  • ff chrome和ie下全局動態(tài)定位的異同及全局高度的取法

    ff chrome和ie下全局動態(tài)定位的異同及全局高度的取法

    這篇文章主要介紹了ff chrome和ie下全局動態(tài)定位的異同及全局高度的取法,需要的朋友可以參考下
    2014-06-06

最新評論

莱西市| 体育| 贡觉县| 桓台县| 鹤壁市| 盐津县| 贺兰县| 寿宁县| 白水县| 本溪| 六安市| 筠连县| 齐河县| 平利县| 青州市| 航空| 额敏县| 北海市| 孟州市| 临海市| 玉门市| 都昌县| 济阳县| 十堰市| 米林县| 新干县| 辽阳县| 丰宁| 庄河市| 宁陵县| 浙江省| 台湾省| 新野县| 黄平县| 南开区| 营山县| 日土县| 枣庄市| 绥宁县| 沧州市| 洛阳市|