Sử dụng keyframes, có thể tạo hiệu ứng một phần tử ngay sau khi được chèn vào DOM. Dưới đây là một số mẫu CSS:CSS3 - Chuyển đổi trên loại bỏ DOM
@-moz-keyframes fadeIn {
from {opacity:0;}
to {opacity:1;}
}
@-webkit-keyframes fadeIn {
from {opacity:0;}
to {opacity:1;}
}
@keyframes fadeIn {
from {opacity:0;}
to {opacity:1;}
}
#box {
-webkit-animation: fadeIn 500ms;
-moz-animation: fadeIn 500ms;
animation: fadeIn 500ms;
}
Có một số chức năng tương tự có sẵn để áp dụng hoạt ảnh (qua CSS, không JavaScript) cho phần tử ngay trước khi bị xóa khỏi DOM không? Dưới đây là một jsFiddle tôi đã thực hiện để chơi xung quanh với ý tưởng này; cảm thấy tự do để ngã ba nó nếu bạn biết một giải pháp.
jsFiddle - http://jsfiddle.net/skoshy/dLdFZ/
này là khá thông minh, nhưng nếu tôi đi một con đường Javascript tôi chỉ có thể gọi '$ ('# điền '). fadeOut() '. Những gì tôi thực sự tìm kiếm là một giải pháp CSS duy nhất - tôi không biết mờ dần trong một phần tử là có thể cho đến khi tôi xem nhiều diễn đàn, vì vậy tôi hy vọng ai đó biết cách làm mờ một phần tử. – Steve
Nhưng '.fadeOut()' sử dụng JavaScript để thực hiện hoạt ảnh.Điều này thực sự sử dụng CSS cho hoạt ảnh. Nó chỉ sử dụng JavaScript để kích hoạt nó vào đúng thời điểm. Và vì bạn đang sử dụng JavaScript để thực sự chèn/xóa phần tử, "chỉ CSS" là loại tùy ý. Không có cách nào để kích hoạt một cái gì đó trong CSS để xảy ra ngay trước khi nó được gỡ bỏ. Nếu bạn đã biến các div "click me" đó thành các liên kết, bạn có thể sử dụng '.hide: active + # fill' như một bộ chọn để kích hoạt fading out, nhưng sau đó bạn vẫn cần một sự kiện' animationend' để thực sự loại bỏ các yếu tố khi nó bị mờ đi. – mercator
@ S.K: Tóm lại, không. CSS không liên quan đến thao tác DOM như thêm và xóa các phần tử. Bí quyết FadeIn hoạt động vì hoạt ảnh xảy ra bất cứ khi nào yếu tố đầu tiên xuất hiện đơn giản vì đó là khoảnh khắc đầu tiên CÓ THỂ xảy ra. Để cho một phần tử biết đến FadeOut, nó sẽ cần phải biết rằng nó sắp bị loại bỏ, và điều đó chỉ có thể với Javascript. Và như người chia bài nói, vì bạn đã sử dụng Javascript để loại bỏ phần tử, yêu cầu "chỉ CSS" là tùy ý. – joequincy