2012-06-01 26 views
6

tôi có hành vi kỳ lạ này với .fadeIn()jquery fadeIn lá opacity 0

Nếu tôi viết

$('#MyDiv').show(); 

Các div thấy tốt.

Tuy nhiên, nếu tôi viết

$('#MyDiv').fadeIn(400); 

Các div chương trình nhưng với opacity 0!

Dòng trước là:

$('#MyDiv').hide() 
    .html(TheHTML) 
    .css('top', 0); 

UPDATE: nếu tôi viết $('#MyDiv').show(400);

Các div cũng vẫn ở opacity 0.

+2

Bạn có thể làm một bản demo? – xdazz

+1

nếu phần tử có độ mờ: 0 === không hiển thị. Nhưng bạn nói: "** The div hiển thị nhưng với opacity 0! **" Tôi thực sự không hiểu –

+0

'TheHTML' đến từ đâu?Vấn đề chắc chắn xuất phát từ một nơi khác, giống như div của bạn có sản phẩm nào nên chiều cao và chiều rộng của nó bằng 0 hoặc một cái gì đó tương tự như vậy – romainberger

Trả lời

5

Một số CSS được trọng div của bạn khi nó là hidden..Better thêm phong cách opacity để div của bạn như 100.

khác làm,

$('#MyDiv').css('opacity','100'); 

sau của bạn fadeIn gọi ..

+9

Giá trị độ mờ CSS là 0 đến 1. 100? Một chút lớn. – designermonkey

+1

Nhưng tăng độ mờ lên 1 hoàn toàn vượt quá sự chuyển đổi của hiệu ứng fadeIn ... – Macbernie

1

Sau đây sẽ làm cho nó có thể nhìn thấy như bạn muốn

$('#MyDiv').animate({ 
    opacity: 1 
},400); 

Bạn có thể thử như sau:

$('#MyDiv').fadeIn(400, function(){ 
    $(this).css('opacity', 1) 
}); 

DEMO

Nhưng tôi nghĩ bạn cũng nên làm việc tốt. Xem here

+1

Không tự động làm mờ hoạt ảnh của fadeIn'? Vì vậy, có thể vấn đề là ở một nơi khác. –

0

Kiểm tra xem bạn có

opacity: 0 !important; 

//or 

opacity: 0; 

Trong css của bạn trong trường hợp đó bạn phải thay đổi opacity tay mình như thế này

$('#MyDiv').fadeIn(400,function(){ 
    $(this).css('opacity',1); 
}); 

Kiểm tra fiddle này. Div đầu tiên sẽ không bao giờ xuất hiện.

4

Thử chức năng jQuery .fadeTo.

.fadeTo(duration, opacity [, callback]) 
.fadeTo(duration, opacity [, easing] [, callback]) 

mẫu:

$('#book').fadeTo('slow', 0.5, function() { 
    // Animation complete. 
});