2011-03-15 30 views
11

I CSS3 Geçişler ile elemanları hareketlendirmek için bir jQuery eklentisi yazıyorum bir CSS3 geçiş dur. jQuery'de, seçili öğedeki geçerli animasyonu birleştiren .stop() vardır.Kesilmesi/gerçek konum/durum

i çalıştıran CSS3 animasyon durabilir konusunda bir fikrin? Bunu işlemek için yerel bir yol var mı, yoksa animasyonu izlemek ve animasyonlu öğenin stilini geçerli konuma, renk boyutuna veya whaterver'e ayarlamak zorunda mıyım? http://jsfiddle.net/meo/r4Ppw/

I yanlış 0/yok/üzere "-webkit-geçiş süresi" olarak ayarlanmış çalıştık:

Bu jQuery eklentisi mevcut durumudur. ama animasyonu durdurmaz.

+0

bunu * gibi- içinde (bugünkü seviye-* başında tutmak durdurmaya çalışıyorsunuz http://jsfiddle.net/T5LVX/6/ * duraklat *) veya animasyonu sonuna kadar atla?/Ben ümit i hem uygulamak, böylece giriş'.stop (yanlış, Ture) 've'.stop (yanlış, yanlış)' –

+0

Orada yapmak için yerel bir yol var. Emeğiniz için teşekkür ederiz. +1 PS: Herhangi bir fikir mevcut özellikleri otomatikleştirmek için en iyi yolu ne olurdu? Bir 'stop' uygulaması ile güncel – meo

cevap

8

Eklentinizde çok derin gitmeden, sadece ( bilgisayarlı) istediğiniz sahne değerleri akım kullanarak css3animate yöntemini yeniden kullanabilirsiniz ve size beri eklentisi 0'a süresini (ayarı 1 hile olacaktır

var $animated = $('div'); 
$animated.css3animate({"height": $animated.css('height'), "width": $animated.css('width')}, 1); 

kullanılarak örnekte bu yüzden varsayılan ..)

kullanmak !speed kullanın. Tabii http://jsfiddle.net/T5LVX/1/

de

örnek, kullanılan geçerli özellikler için bu otomatik olmalıdır. Animasyon ve bir başlattığınızda bir zamanlayıcı kullanın birisi durdurma yöntemini kullandığınızda, ayrıca

Geçtin cssObject saklayabilir


güncelleme .. duraklama/devam işlevlerini taklit edebilir animasyon, elemanın data için ve onlar aracılığıyla durdurma döngü akım değerleri elde etmek.

Yani $obj.data('animationCss', cssObject); olabilir ve siz animation yönteminde stop yöntemde örnek

stop : function(clearQueue,jumpToEnd){ 
    return this.each(function(){ 
     var $that = $(this); 
     var currentCss = {}; 
     var animationCss = $that.data('animationCss'); 
     for (var prop in animationCss) 
      currentCss[prop] = $that.css(prop); 

     if (jumpToEnd) 
     { 
      animation($that,currentCss,1, function(){animation($that,animationCss,1)}); 
     } 
     else 
     { 
      animation($that,currentCss,1); 
     } 
     console.log("stop was called"); 
    }); 
    } 

:

+0

i bu şekilde yapmak zorunda affraid oldu kuyu her türlü açık im istiyorum – meo

+0

@meo, .. –

+0

10 i eğer olabilir. Teşekkür ederim! – meo