使元素在 CSS 的动画延迟期间保持隐藏
Make element remain hidden during animation-delay in CSS
我有一个元素可以从我希望在页面上看起来像的元素在屏幕上滑动,然后在另一侧滑动 "land"。我已经把动画弄下来了,但在延迟期间,图像似乎只是停留在页面上等待。延迟是因为我有另一个动画需要在这个动画开始之前完成。
这是我的 CSS 代码,我通过 class 和反应前端
引用它
.tester{
position: relative;
animation-name: test_css_moving_sideways;
animation-duration: 3s;
animation-iteration-count: 1;
animation-direction: linear;
left: 90%;
animation-delay: 2s;
}
@keyframes test_css_moving_sideways {
0% { left: 0px; top: 0px;}
100% { left: 90%; top: 0px; }
}
1) 要解决此问题,您可以在 css 中设置 left
属性,使其位于 0%,这样当您的动画开始时,它不必移动到0% 左边(动画开始的地方)因为它已经在那里了:)
2) 添加 animation-fill-mode
- 这控制动画结束时发生的事情。将此值设置为 forwards
会将动画结尾的 css 应用到对象
因此将您的 css 修改为:
.tester{
position: relative;
animation-name: test_css_moving_sideways;
animation-duration: 3s;
animation-iteration-count: 1;
animation-direction: linear;
left: 0%;
animation-delay: 2s;
animation-fill-mode: none, forwards;
}
检查代码笔:https://codepen.io/sasssssha/pen/Nayzpg
您应该再创建一个 class (.testerAnimated) 并将此 class 名称添加到具有 js 功能的元素(如果您想要在特定时间播放动画),或者您可以将其添加到一次(在这种情况下,动画在页面加载时开始)。检查一下:
.testerAnimated{
animation-name: test_css_moving_sideways;
animation-duration: 4.5s; //play with it
animation-delay: 2s;
}
.tester{
position: relative;
animation-name: test_css_moving_sideways;
left: 90%;
visibility:hidden;
}
@keyframes test_css_moving_sideways {
0% { left: 0px; top: 0px;visibility:visible;}
100% { left: 90%; top: 0px;visibility:visible;}
}
我有一个元素可以从我希望在页面上看起来像的元素在屏幕上滑动,然后在另一侧滑动 "land"。我已经把动画弄下来了,但在延迟期间,图像似乎只是停留在页面上等待。延迟是因为我有另一个动画需要在这个动画开始之前完成。
这是我的 CSS 代码,我通过 class 和反应前端
引用它.tester{
position: relative;
animation-name: test_css_moving_sideways;
animation-duration: 3s;
animation-iteration-count: 1;
animation-direction: linear;
left: 90%;
animation-delay: 2s;
}
@keyframes test_css_moving_sideways {
0% { left: 0px; top: 0px;}
100% { left: 90%; top: 0px; }
}
1) 要解决此问题,您可以在 css 中设置 left
属性,使其位于 0%,这样当您的动画开始时,它不必移动到0% 左边(动画开始的地方)因为它已经在那里了:)
2) 添加 animation-fill-mode
- 这控制动画结束时发生的事情。将此值设置为 forwards
会将动画结尾的 css 应用到对象
因此将您的 css 修改为:
.tester{
position: relative;
animation-name: test_css_moving_sideways;
animation-duration: 3s;
animation-iteration-count: 1;
animation-direction: linear;
left: 0%;
animation-delay: 2s;
animation-fill-mode: none, forwards;
}
检查代码笔:https://codepen.io/sasssssha/pen/Nayzpg
您应该再创建一个 class (.testerAnimated) 并将此 class 名称添加到具有 js 功能的元素(如果您想要在特定时间播放动画),或者您可以将其添加到一次(在这种情况下,动画在页面加载时开始)。检查一下:
.testerAnimated{
animation-name: test_css_moving_sideways;
animation-duration: 4.5s; //play with it
animation-delay: 2s;
}
.tester{
position: relative;
animation-name: test_css_moving_sideways;
left: 90%;
visibility:hidden;
}
@keyframes test_css_moving_sideways {
0% { left: 0px; top: 0px;visibility:visible;}
100% { left: 90%; top: 0px;visibility:visible;}
}