2011-06-26 13 views
5

Eğer bir öğenin bir ekranı varsa: CSS'de hiç yok, sonra jQuery'de 0'dan 1'e kadar opaklığı canlandırma öğesi görünür yapmaz.jquery animate opacity vs display: none

neden?

Animate() öğesini görünür hale getirmek için ne eklemem gerekir?

el.css({ 
      opacity: 0, 
      left: - 200 
      }).stop().animate({ 
      opacity: 1, 
      left: 0 
      }, { 
      duration: 333 
      }); 

cevap

23

Önce show()[docs] yöntemi kullanarak göstermek gerekiyordu.

.css('opacity',0).show().animate({opacity:1}); 

Örnek:http://jsfiddle.net/DnE7M/1/


Ya da sadece kullanabilirsiniz senin eleman opaklıkta 0 zaten değilse

, o zaman muhtemelen ilk o ayarlamak isterdim Ayrıca display ile ilgilenmesi gereken fadeIn()[docs] yöntemi.

Örnek:

el.css({ 
     opacity: 0, 
     left: - 200 
     }) 
    .stop() 
    .show()  // <-- make the element able to be displayed 
    .animate({ 
     opacity: 1, 
     left: 0 
     }, { 
     duration: 333 
     }); 

Ayrıca sağ çağrısında yapabileceğini:koduna alakalı hale getirmek için söz eklendi: DÜZENLEME


http://jsfiddle.net/DnE7M/

css()[docs] yöntemine:

el.css({ 
     opacity: 0, 
     display: 'block', // <-- 'block' or whatever is appropriate for you 
     left: - 200 
     }) 
    .stop() 
    .animate({ 
     opacity: 1, 
     left: 0 
     }, { 
     duration: 333 
     }); 
+0

@Katy: Rica ederim. :O) – user113716

İlgili konular