使用keyframes,可以在元素插入到DOM后立即对其进行动画制作。下面是一些示例CSS:CSS3 - 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;
}
有一些类似的功能,可应用于动画(通过CSS,JavaScript的没有)的元素权利之前将其从DOM删除?下面是我用这个想法来玩的jsFiddle;如果您知道解决方案,请随时分享。
的jsfiddle - http://jsfiddle.net/skoshy/dLdFZ/
这是很聪明的,但如果我要去一个JavaScript路线我可以调用'$('#填写“)。淡出()'。我真正想要的只是一个CSS解决方案 - 我不知道在一个元素中淡出是否可能,直到我查看了很多论坛,所以我希望有人知道如何淡化一个元素。 – Steve
但'.fadeOut()'使用JavaScript来完成动画。这实际上使用动画的CSS。它只是使用JavaScript在正确的时间触发它。而且,由于您正在使用JavaScript来实际插入/移除元素,因此“仅限CSS”是一种随意性。没有办法在CSS被删除之前触发某些事情。如果您将这些“点击我”div变成链接,您可以使用'.hide:active +#fill'作为触发淡出的选择器,但是您仍然需要一个'animationend'事件来实际当元素淡出时删除元素。 – mercator
@ S.K .:总之,没有。 CSS与添加和删除元素等DOM操作无关。 FadeIn技巧的工作原理是,只要元素第一次出现就会发生动画,因为这是可能发生的第一个时刻。为了让一个元素知道FadeOut,它需要知道它将要被移除,并且这只能通过Javascript来实现。正如mercator所说,由于您已经在使用Javascript来移除元素,因此“仅限CSS”的要求是任意的。 – joequincy