CSS3 sử dụng Webkit trong Safari; Tôi có một nút mà, khi được nhấp, gây ra một div mờ dần. Đó div chỉ là một hình chữ nhật lớn đầy và nó có một vài nút trong đó, một trong số đócó cùng một div để phai mờ.Phần tử CSS3 có Độ mờ: 0 (ẩn) phản hồi sự kiện chuột
Vấn đề là: Khi phần tử đã mờ dần (độ mờ: 0) và tôi nhấp vào vị trí một trong các nút, onClick vẫn đang được kích hoạt. Trong các từ khác, mặc dù không thể nhìn thấy nút (độ mờ: 0) nó vẫn ở đó và là một phần của mô hình sự kiện. Tôi không muốn điều đó.
Các nút gọi các chức năng sau:
// This displays the overlay (popup)
function showCategoryPopup() {
// Was playing with the following, but with no success.
// popupCategory.style.display = "block";
// popupCategory.style.visibility = "visible";
// Change the attributes that will be animated.
popupCategory.style.opacity = 1;
popupCategory.style.webkitTransform = "scale(1.0)";
}
function hideCategoryPopup() {
// Change the animated attributes
popupCategory.style.opacity = 0;
popupCategory.style.webkitTransform = "scale(0.7)";
// Even if opacity is 0, we still get mouse events. So, make it hidden?
// popupCategory.style.visibility = "hidden";
// popupCategory.style.display = "none";
}
Các lớp CSS cho lớp phủ là thế này:
.popupContainer {
opacity: 0;
-webkit-transform: scale(0.7);
-webkit-transition-duration: 0.3s;
-webkit-transition-timing-function: ease-in-out;
-webkit-transition-delay: initial;
}
Nếu tôi không sử dụng các thiết lập hiển thị hoặc hiển thị ở tất cả, các hình ảnh động là tốt, nhưng các sự kiện mouseClick được kích hoạt cho các mục vô hình.
Nếu tôi sử dụng các khối, sau đó nó bật/tắt mà không có hoạt ảnh.
Nếu tôi sử dụng kiểu hiển thị thì nó hoạt động nhưng thay vì hiển thị hình động ngay lập tức, nó chỉ kích hoạt khi một số sự kiện khác trong trang được kích hoạt, giống như một nút khác ở trên trang.
Tôi nghĩ có thể thêm "con trỏ-sự kiện: không" vào kiểu được sử dụng bởi div cửa sổ bật lên sau khi bị ẩn, nhưng những gì tôi yêu cầu có vẻ giống như thứ bạn thường gặp phải với độ mờ phải là một vấn đề bán thường xuyên.
Suy nghĩ?
True. Bạn nên suy nghĩ về độ mờ đục: 0 phần tử như thể nó được làm bằng thủy tinh :) –
Màn hình: none // display: block hoạt động để giải quyết vấn đề với cú click chuột, nhưng opacity không hoạt động từ 1 đến 0. Div chỉ bật và tắt. Đây là vấn đề với thuộc tính display:. Tôi đã thử cài đặt hiển thị: không có trước và sau khi thiết lập độ mờ: 0, nhưng tôi tin (?) Kết quả của hàm được áp dụng khối lượng sau khi hàm được gọi và cho kết quả ròng của khối biến mất thay vì phai màu ra. Có cái gì khác tôi cần phải làm như vậy nó đặt khối sau khi hoạt hình opacity kết thúc? – Woodster
@Woodster Tôi có thể khuyên bạn nên xem xét sử dụng jQuery cho một cái gì đó như thế này. Các hiệu ứng hình ảnh động tích hợp (như 'fadeOut') rất dễ sử dụng. 'fadeOut' mờ dần bất cứ điều gì và sau đó đặt nó thành' display: none' ra khỏi hộp. –