javascript判斷css3動(dòng)畫結(jié)束 css3動(dòng)畫結(jié)束的回調(diào)函數(shù)

字號(hào):


    本文主要給大家介紹的是如何使用javascript判斷CSS3動(dòng)畫效果結(jié)束,主要是使用了javascript的回調(diào)函數(shù),其思路是一旦動(dòng)畫或變換結(jié)束,回調(diào)函數(shù)就會(huì)觸發(fā)。不再需要大型類庫(kù)支持,非常的簡(jiǎn)單實(shí)用,推薦給大家。
    css3 的時(shí)代,css3--動(dòng)畫 一切皆有可能;
    javascript判斷css3動(dòng)畫結(jié)束 css3動(dòng)畫結(jié)束的回調(diào)函數(shù) 三聯(lián)
    傳統(tǒng)的js 可以通過回調(diào)函數(shù)判斷動(dòng)畫是否結(jié)束;即使是采用CSS技術(shù)生成動(dòng)畫效果,JavaScript仍然能捕獲動(dòng)畫或變換的結(jié)束事件;
    transitionend事件和animationend事件標(biāo)準(zhǔn)的瀏覽器事件,但在WebKit瀏覽器里你仍然需要使用webkit前綴,所以,我們不得不根據(jù)各種瀏覽器分別檢測(cè)事件
    代碼如下:
    var transitions = {
    'transition':'transitionend',
    'OTransition':'oTransitionEnd',
    'MozTransition':'transitionend',
    'WebkitTransition':'webkitTransitionEnd'
    }
    下面附上源代碼:
    代碼如下:
    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>suface js判斷css動(dòng)畫是否結(jié)束</title>
    </head>
    <body>
    <p>一旦動(dòng)畫或變換結(jié)束,回調(diào)函數(shù)就會(huì)觸發(fā)。不再需要大型類庫(kù)支持。<br> </p>
    <style type="text/css">
    .sample {
    width: 200px;
    height: 200px;
    border: 1px solid green;
    background: lightgreen;
    opacity: 1;
    margin-bottom: 20px;
    transition-property: opacity;
    /*transition-duration: .5s;*/
    transition-duration:3s;
    }
    .sample.hide {
    opacity: 0;
    }
    </style>
    <div>css3動(dòng)畫過度慢慢隱藏(transition-duration:3s;)</div>
    <p><button onclick="this.style.display='none';startFade();">慢慢消退,檢測(cè)結(jié)束事件</button></p>
    <script>
    (function() {
    var e = document.getElementsByClassName('sample')[0];
    function whichTransitionEvent(){
    var t;
    var el = document.createElement('fakeelement');
    var transitions = {
    'transition':'transitionend',
    'OTransition':'oTransitionEnd',
    'MozTransition':'transitionend',
    'WebkitTransition':'webkitTransitionEnd'
    }
    for(t in transitions){
    if( el.style[t] !== undefined ){
    return transitions[t];
    }
    }
    }
    var transitionEvent = whichTransitionEvent();
    transitionEvent && e.addEventListener(transitionEvent, function() {
    alert('css3運(yùn)動(dòng)結(jié)束!我是回調(diào)函數(shù),沒有使用第三方類庫(kù)!');
    });
    startFade = function() {
    e.className+= ' hide';
    }
    })();<br></script>
    </body>
    </html>
    以上就是本文所述的關(guān)于javascript判斷CSS3動(dòng)畫結(jié)束的方法,希望大家能夠喜歡