SORU
16 ŞUBAT 2011, ÇARŞAMBA


Nasıl tarayıcılarda CSS3 Geçiş fonksiyonları normale muyum?

Y geçiş son olay webkitTransitionEnd denir, Firefox transitionEnd, opera oTransitionEnd. Saf JS hepsini mücadele için iyi bir yol nedir? Tarayıcı koklama yapmalıyım? ya da her biri ayrı ayrı uygulamak? Aklıma gelmedi başka bir yol?

yani:

//doing browser sniffing
var transitionend = (isSafari) ? "webkitTransitionEnd" : (isFirefox) ? "transitionEnd" : (isOpera) ? "oTransitionEnd";

element.addEventListener(transitionend, function(){
  //do whatever
},false);

ya

//asigning an event listener per browser
element.addEventListener(webkitTransitionEnd, function(){callfunction()},false);
element.addEventListener(oTransitionEnd, function(){callfunction()},false);
element.addEventListener(transitionEnd, function(){callfunction()},false);

function callfunction() {
   //do whatever
}

CEVAP
1 ŞUBAT 2012, ÇARŞAMBA


Bir teknik Modernizr, geliştirilmiş: kullanılan var

function transitionEndEventName () {
    var i,
        undefined,
        el = document.createElement('div'),
        transitions = {
            'transition':'transitionend',
            'OTransition':'otransitionend',  // oTransitionEnd in very old Opera
            'MozTransition':'transitionend',
            'WebkitTransition':'webkitTransitionEnd'
        };

    for (i in transitions) {
        if (transitions.hasOwnProperty(i) && el.style[i] !== undefined) {
            return transitions[i];
        }
    }

    //TODO: throw 'TransitionEnd event is not supported in this browser'; 
}

O zaman sadece geçiş son olay ne zaman ihtiyacın olursa bu işlevini çağırabilirsiniz:

var transitionEnd = transitionEndEventName();
element.addEventListener(transitionEnd, theFunctionToInvoke, false);

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Helder Barreto

    Helder Barre

    22 Mayıs 2006
  • Ludique

    Ludique

    21 NİSAN 2009
  • Philip DeFranco

    Philip DeFra

    16 EYLÜL 2006