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

  • Damian Winter

    Damian Winte

    27 ŞUBAT 2007
  • Deany Boii

    Deany Boii

    27 Kasım 2007
  • NYLON Video

    NYLON Video

    11 Aralık 2006