2010-02-13 32 views

Trả lời

71

Cũng

thay vì .fadeIn() bạn có thể .animate({opacity:1})
và thay vì .fadeOut() bạn có thể .animate({opacity:0})

+2

Khi bạn tạo hiệu ứng mờ, các lần nhấp vào các thành phần vẫn kích hoạt trình xử lý sự kiện. Với 'khả năng hiển thị: ẩn ', các sự kiện là * không * được kích hoạt. – Jawa

+0

@Jawa, có nhưng khả năng hiển thị không hoạt ảnh và OP muốn * mờ dần vào/ra *.(* bạn có thể thêm 'hiển thị: ẩn' sau khi hoạt ảnh hoàn tất, thông qua tham số' callback', để đáp ứng cả hai nhu cầu *) –

25

Bạn có thể thử điều này cho fadeOut:

$("something here").fadeOut("slow", function() { 
    $(this).show().css({visibility: "hidden"}); 
}); 

... và điều này cho fadeIn:

$("something here").hide().css({visibility: "visible"}).fadeIn("slow"); 
+0

Tốt. Tôi đã cố gắng để làm điều này nhưng đã gặp khó khăn khi nhận được fade ra để làm việc, mà gọi lại làm lừa mặc dù. – nedned

18

Sử dụng fadeTo:

Phương pháp .fadeTo() sinh động độ mờ đục của các yếu tố phù hợp. Nó tương tự như phương thức .fadeIn() nhưng phương thức đó bỏ ẩn phần tử và luôn mờ dần đến độ mờ là 100%.

Thời lượng được tính bằng mili giây; các giá trị cao hơn cho biết hình động chậm hơn, không phải các giá trị nhanh hơn. Các chuỗi 'fast''slow' có thể được cung cấp để cho biết thời lượng tương ứng là 200600 mili giây. Nếu bất kỳ chuỗi nào khác được cung cấp, thời lượng mặc định là 400 mili giây được sử dụng. Không giống như các phương pháp hiệu ứng khác, .fadeTo() yêu cầu phải chỉ định rõ ràng duration.

Nếu được cung cấp, gọi lại là bắn khi hoạt hình được hoàn tất ...

2

Nhờ 10gler giải pháp của tôi dưới đây, sử dụng tầm nhìn để tránh vô hình nút bấm, vv

//fadeIn 
$("#x") 
    .css('visibility', 'visible') 
    .fadeTo('fast', 1); 

//fadeOut 
$("#x") 
    .fadeTo('fast', 0, function() { 
     $(this).css('visibility', 'hidden'); 
    }); 
+0

Cảm ơn ví dụ. Hoạt động tuyệt vời. –

0

Sử dụng một sự kết hợp của các câu trả lời ở trên, điều này làm việc tốt cho tôi. Bạn có thể thay đổi thời gian hoạt ảnh theo ý thích của mình.

Để fadeIn:

 $('selector').animate({opacity:1, visibility:'visible'}, 200); 

Để fadeOut:

 $('selector').animate({opacity:0, visibility:'hidden'}, 200); 

Hãy chắc chắn để thiết lập visibilty:'hidden'opacity:0 lúc bắt đầu để tránh những cửa sổ pop đột ngột trên phai đầu tiên nhập nếu hiển thị mặc định là ẩn, nếu không nó không quan trọng.

 $('selector').css({opacity:0, visibility:'hidden'}); 
Các vấn đề liên quan