2012-08-17 15 views
5

dışarı ben ve pasajı burada paylaşılan kullanılarak solmaya metin-gölge animasyon çalışıyorum:Animating metin gölgesi içinde solmaya ve

Animating elements of text-shadow with jQuery

Kodum temelde:

$.fx.step.textShadowBlur = function(fx) { 
    $(fx.elem).css({textShadow: '0 0 ' + Math.floor(fx.now) + 'px white'}); 
}; 

$("#seconds").animate({textShadowBlur:20}, {duration: 300, complete: function() { 
    $("#seconds").animate({textShadowBlur:0}, {duration: 300}); 
}}); 

Sorun şu ki, "fadeout" bölümü çalışmıyor gibi görünüyor. Eğer elemanın bir özelliğinde animasyon konum özelliğinin mevcut durumunu saklamak gerekir http://jsfiddle.net/ANs92/

+1

JS yerine CSS3 ile efekti elde etmek akıllıca olmaz mı? – aliirz

+0

Bu efekt, belirli olaylarda tetiklenir ve temelde 2 animasyon içerir (daha yüksek bulanıklık ve daha sonra bulanıklaştırmaya yönelik animasyon). Css3'ün bunu nasıl kolaylaştıracağını göremiyorum, o zaman yine css3 animasyonlarında bugüne kadar% 100 değilim. – Naatan

+0

Bunu gördünüz mü? http://www.alexpeattie.com/projects/animate-textshadow/ –

cevap

3

: Gölge bulanıklık sadece sorunun 0.

jsfiddle 20 ve ardından "Resetlemelerin" için artar. Aksi takdirde, animasyonunuz her başladığında $ .animate özelliği 0 olarak kabul edecektir. Ve 0'dan 0'a animasyon yapmak hiçbir şey ifade etmeyecektir.

Bu şekilde işe yarayacak:

$.fx.step.textShadowBlur = function(fx) { 
    $(fx.elem) 
     .prop('textShadowBlur', fx.now) 
     .css({textShadow: '0 0 ' + Math.floor(fx.now) + 'px black'}); 
}; 

setInterval(function() { 
    $("#seconds").animate({textShadowBlur:20}, { 
     duration: 300, 
     complete: function() { 
      $("#seconds").animate({textShadowBlur:0}, {duration: 300}); 
     } 
    }); 
}, 1000); 

Çalışma Örneği: http://jsfiddle.net/ANs92/16/

unutmayın: sorunlarla alabilirsiniz setInterval kullanırken: http://bonsaiden.github.com/JavaScript-Garden/#other.timeouts -

setInterval

ile> İstifleme Aramalar setInterval, numaralı telefonu değil 'u değil, sonraki aramayı cevaplayana kadar ilk aramanın tamamlanmasını bekler. alls birikebilir.

+0

Mükemmel, teşekkürler LeJared! SetInterval sadece sorunu göstermek içindi, ben üretimde kullanmıyorum. – Naatan