Đây là những gì làm việc cho tôi (dựa trên @Alan's answer)
var foo = $('ul.load_details'); // or whatever
var duration = "slow"; // or whatever
if (foo.css('visibility') == 'visible') {
foo.css({ opacity: 1 }).animate({ opacity: 0 }, duration, function() {
foo.css({ visibility: "hidden" });
});
} else {
foo.css({ opacity: 0 }).animate({ opacity: 1 }, duration).css({ visibility: "visible" });
}
Khi các yếu tố foo
có thể nhìn thấy, sau đó từ từ giảm opacity xuống còn zero (thông qua animate
) và sau đó đợi cho đến khi thực hiện xong trước khi đặt chế độ hiển thị của foo
bị ẩn. Nếu không, nếu được đặt thành ẩn trong quá trình animate thì hiệu ứng mờ dần sẽ không xảy ra vì nó bị ẩn ngay lập tức.
Ngoài ra, bạn có thể sử dụng đơn giản hơn, sạch hơn fadeTo():
var foo = $('ul.load_details'); // or whatever
var duration = "slow"; // or whatever
if (foo.css('visibility') == 'visible') {
foo.fadeTo(duration, 0, function() {
foo.css({ visibility: "hidden" });
});
} else {
foo.fadeTo(duration, 1).css({ visibility: "visible" });
}
Nguồn
2013-02-06 23:37:33
những gì bạn muốn đạt được? – erenon
-1 jieren Tôi đoán bạn có thể xem một số hướng dẫn hoặc tài liệu jQuery trước khi đặt câu hỏi và có thể cụm từ câu hỏi của bạn với mục tiêu của bạn như erenon gợi ý – Michiel
@Erenon: Dựa trên ví dụ mã, có vẻ như rất có khả năng muốn mờ dần từ không nhìn thấy được. – jrista