gpt4 book ai didi

html - CSS 关键帧 - 动画在内容已经静态出现后开始

转载 作者:行者123 更新时间:2023-11-28 15:30:58 27 4
gpt4 key购买 nike

我一直在尝试自学一些带有关键帧的 css 动画,我正在尝试创建一些东西,其中有一个小方 block 落下,然后从那个方 block 中,一个矩形从左边突出,然后显示一些大约 8 秒后发短信,然后 rentangle 退回到较小的正方形(向右),而较小的正方形向上退回到“稀薄的空气”中。如果您想知道这是干什么用的,那是当有人在我直播时在 Twitch TV 上关注我时的提醒通知。这是一个 JSFiddle到目前为止我的努力。由于某种原因,在 JSFiddle 上,内容没有出现在动画之前,但是在我使用的警报服务上,它确实发生了。我已经链接了 their tester here ,这样您就明白我的意思了。

HTML 代码:

<html>

<head>
<title>GR412 Twitch Follower Alert</title>
<link href="Twitch\followeralert.css" rel="stylesheet" type="text/css" media="screen" />
</head>

<body>
<div class="follower-container">

<div class="left-square-container">

</div>

<div class="right-retangle-container">

<div class="header">
<span class='keyword name'>{name}</span> is now following you!
</div>

</div>

</div>

</body>

</html>

CSS 代码:

@keyframes slideInFromAbove {
0% {
transform: translateY(-100%);
}

100% {
transform: translateY(0);
}
}

@keyframes slideInFromTheLeft {
0% {
transform: translateX(-100%);
}

100% {
transform: translateX(0);
}
}

@keyframes slideInFromBelow {
0% {
transform: translateY(0);
}

100% {
transform: translateY(100%);
}
}

@keyframes slideInFromTheRight {
0% {
transform: translateX(0);
}

100% {
transform: translateX(100%);
}
}

.follower-container {
display: flex;
font-family: 'Roboto';
position: absolute;
top: 50%;
left: 50%;
transform: translateX(-50%) translateY(-50%);
}

.left-square-container {
width: 75px;
height: 75px;
background: #313131;
animation: 1s 1s 1 slideInFromAbove;
}

.right-retangle-container {
width: 500px;
height: 75px;
background: #212121;
animation: 1s 2s 1 slideInFromTheLeft;
}

.header {
font-size: 24px;
color: #ffffff;
text-align: center; /*vertical alignment of text*/
position: relative; /*horizontal alignment of text*/
top: 50%; /*horizontal alignment of text*/
transform: translateY(-50%); /*horizontal alignment of text*/
margin: 10px,
10px,
10px,
10px; /*GOT TO HERE, THIS COULD BE CAUSING TWITCHING*/
}

.keyword:not(.user_message) {
color: #0d47a1;
}

但是存在一些问题,首先是内容先出现,然后是动画。我希望它从一个空屏幕开始,然后动画确保正方形首先下降,然后 rentangle 从正方形突出,最后显示文本。这三个组件应保持 8 秒,然后如前所述,另一个动画应按第一段中指定的顺序隐藏每个组件。

第二个问题是,当 rentangle 突出时,它不是从正方形的右侧边缘突出,而是从左侧突出。所以它与正方形重叠,破坏了效果。

我的代码基于这个现有问题:css3 transition animation on load? ,这很有帮助,但对我的特定需求没有帮助。

如有任何帮助,我们将不胜感激,如果有什么不清楚的地方,请告诉我。

请注意,如果第二个链接不起作用,请告诉我,我会对其进行排序。

谢谢,GR412。

最佳答案

问题1:您需要为内容设置初始位置的样式。

问题 2:position:relative; z-index:/*some value*/ 所以你可以适本地分层内容。

你还需要使用animation-fill-mode: forwards这会将结束样式设置为与之关联的 @keyframes 的结束样式。

我已经调整了你的时间。这是一个 plnkr它的。阅读 CSS 中的注释

您最终不得不计算百分比。我会考虑制定一个可以接受 scss/less/sass 等变量的计算。

CSS 注释:

/*
to calculate these percentages:

([seconds of portion of animation] x 100)/[total seconds of animation]

1) slideInFromAbove starts
2) slideInFromTheLeft starts
3) slideInFromTheLeft ends
4) slideInFromAbove ends


slideInFromAbove:
1) slide down
2) hold
2) slide up


slideInFromTheLeft:
1) slide right
2) hold
3) slide left


*/

关于html - CSS 关键帧 - 动画在内容已经静态出现后开始,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44702439/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com