我有一个React应用程序,它可以创建存在5秒的元素并销毁它们。每个元素都有相同的CSS动画分配:
animation: move-up 5s linear;
这个想法是,元素在5秒内从屏幕底部移动到顶部。应用程序会收到关于何时创建这些元素之一的消息。它总是会在创建后5秒销毁它们。
当我打开标签页时,这很好用。但是,如果我在另一个标签页上,CSS动画将不会播放,直到我重新打开标签页。这是非常明显的,因为元素将在飞到屏幕顶部之前被销毁。它在5秒后被正确销毁,但CSS动画不会立即播放,只有在我重新打开标签页后才开始。
有没有什么方法可以在不同的标签上启动CSS动画?
2条答案
按热度按时间vd2z7a6w1#
我认为你应该尝试用JavaScript创建你的动画,比如:
它也许能解决你的问题
tv6aics12#
你需要确保你的动画元素是渲染的,而不是设置为
display: none
。你可以设置为visibility: hidden
,它仍然应该在幕后动画。例如,在下面的代码片段中,如果你快速点击三次“添加”,你会得到三个动画-一个总是可见的,一个是
display: none
,一个是visibility: hidden
。两秒钟后,两个不总是可见的动画将变为可见。你会看到visibility: hidden
的动画在显示时将部分显示在顶部,但是display: none
的一个将从底部开始(然后在大约一半的地方被移除)。