Tôi biết, đây thực sự không phải là giải pháp cho câu hỏi của bạn, bởi vì bạn yêu cầu
màn hình + độ mờ
Cách tiếp cận của tôi giải quyết một câu hỏi tổng quát hơn, nhưng có thể đây là vấn đề cơ bản cần được giải quyết bằng cách sử dụng display
kết hợp vớiopacity
.
Mong muốn của tôi là đưa Element ra khỏi con đường khi nó không được nhìn thấy. Giải pháp này thực hiện chính xác điều đó: Nó di chuyển phần tử ra khỏi phần tử và điều này có thể được sử dụng để chuyển đổi:
.child {
left: -2000px;
opacity: 0;
visibility: hidden;
transition: left 0s 0.8s, visibility 0s 0.8s, opacity 0.8s;
}
.parent:hover .child {
left: 0;
opacity: 1;
visibility: visible;
transition: left 0s, visibility 0s, opacity 0.8s;
}
Mã này không chứa bất kỳ tiền tố trình duyệt nào hoặc các bản hack tương thích ngược. Nó chỉ minh họa khái niệm cách phần tử được chuyển đi vì nó không cần thiết nữa.
Phần thú vị là hai định nghĩa chuyển đổi khác nhau. Khi con trỏ chuột đang di chuột qua .parent
phần tử, .child
phần tử cần được đưa vào vị trí ngay lập tức và sau đó độ mờ sẽ được thay đổi:
transition: left 0s, visibility 0s, opacity 0.8s;
Khi không có di chuột hoặc con trỏ chuột bị di chuyển khỏi phần tử, người ta phải đợi cho đến khi thay đổi độ mờ hoàn tất trước khi phần tử có thể được di chuyển khỏi màn hình:
transition: left 0s 0.8s, visibility 0s 0.8s, opacity 0.8s;
Di chuyển đối tượng ra xa sẽ là một giải pháp thay thế khả thi trong trường hợp cài đặt display:none
không phá vỡ bố cục.
Tôi hy vọng tôi đã đánh một cái đinh vào đầu cho câu hỏi này mặc dù tôi đã không trả lời nó.