gpt4 book ai didi

html - IE 上的 CSS 动画不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 12:07:32 25 4
gpt4 key购买 nike

我有一个使用 html 和 css 的滚动文本横幅,它适用于 Firefox 和 Chrome,但在 IE 11 中出错,当它到达第 3 个元素动画的末尾时,文本重新出现在中心并以错误的方式滚动.

文本应该从右到右依次出现一个元素,滚动到中间,稍等片刻,然后向左滚动,然后下一个元素应该出现。在最后一项之后,动画应该重复。

@-webkit-keyframes left-one {
0% {
-webkit-transform: translateX(100%);
}
5%,28% {
-webkit-transform: translateX(0);
}
33%,100% {
-webkit-transform: translateX(-100%);
}
}
@-webkit-keyframes left-two {
0%,33% {
-webkit-transform: translateX(100%);
}
38%,61% {
-webkit-transform: translateX(0);
}
66%,100% {
-webkit-transform: translateX(-100%);
}
}
@-webkit-keyframes left-three {
0%,66% {
-webkit-transform: translateX(100%);
}
71%,95% {
-webkit-transform: translateX(0);
}
100% {
-webkit-transform: translateX(-100%);
}
}
/** Webkit Keyframes **/

@keyframes left-one {
0% {
transform: translateX(100%);
}
5%,28% {
transform: translateX(0);
}
33%,100% {
transform: translateX(-100%);
}
}
@keyframes left-two {
0%,33% {
transform: translateX(100%);
}
38%,61% {
transform: translateX(0);
}
66%,100% {
transform: translateX(-100%);
}
}
@keyframes left-three {
0%,66% {
transform: translateX(100%);
}
71%,95% {
transform: translateX(0);
}
100% {
transform: translateX(-100%);
}
}
.marquee {
width: 100%;
height: 30px;
margin: 0 auto;
margin-top: 1px;
margin-bottom: 2px;
overflow: hidden;
position: relative;
background-color: #222;
-webkit-border-radius: 5px;
border-radius: 5px;
-webkit-transition: background-color 350ms;
-moz-transition: background-color 350ms;
-o-transition: background-color 350ms;
-ms-transition: background-color 350ms;
transition: background-color 350ms;
background: -webkit-linear-gradient(left, rgba(32, 32, 32, 0), rgba(32, 32, 320, 1), rgba(32, 32, 32, 1), rgba(32, 32, 32, 1), rgba(32, 32, 32, 1), rgba(32, 32, 32, 0));
/*Safari 5.1-6*/
background: -o-linear-gradient(right, rgba(32, 32, 32, 0), rgba(32, 32, 32, 1), rgba(32, 32, 32, 1), rgba(32, 32, 32, 1), rgba(32, 32, 32, 1), rgba(32, 32, 32, 0));
/*Opera 11.1-12*/
background: -moz-linear-gradient(right, rgba(32, 32, 32, 0), rgba(32, 32, 32, 1), rgba(32, 32, 32, 1), rgba(32, 32, 32, 1), rgba(32, 32, 32, 1), rgba(32, 32, 32, 0));
/*Fx 3.6-15*/
background: -ms-linear-gradient(right, rgba(32, 32, 32, 0), rgba(32, 32, 32, 1), rgba(32, 32, 32, 1), rgba(32, 32, 32, 1), rgba(32, 32, 32, 1), rgba(32, 32, 32, 0));
/*IE*/
background: linear-gradient(to right, rgba(32, 32, 32, 0), rgba(32, 32, 32, 1), rgba(32, 32, 32, 1), rgba(32, 32, 32, 1), rgba(32, 32, 32, 1), rgba(32, 32, 32, 0));
/*Standard*/
}
.marquee p {
position: absolute;
width: 100%;
height: 100%;
margin: 0;
line-height: 28px;
text-align: center;
color: #FCCC0C;
filter: dropshadow(color=#000000, offx=1, offy=1);
text-shadow: 0px 0px 1px #FCCC0C;
transform: translateX(100%);
-webkit-transform: translateX(100%);
}
.marquee p:nth-child(1) {
animation: left-one 15s ease infinite;
-webkit-animation: left-one 15s ease infinite;
}
.marquee p:nth-child(2) {
animation: left-two 15s ease infinite;
-webkit-animation: left-two 15s ease infinite;
}
.marquee p:nth-child(3) {
animation: left-three 15s ease infinite;
-webkit-animation: left-three 15s ease infinite;
}
<div class="marquee">
<p><a>1. Text to scroll item.</a>
</p>
<p><a>2 Second scroll text,</a>
</p>
<p><a>3 Final text item for scrolling,</a>
</p>
</div>

最佳答案

我认为问题与您的 0% 关键帧和 IE 在开始动画的位置做了一些有趣的事情有关。我的意思是,当您查看 codepen 时,看起来文本在第二个关键帧而不是 0% 处向右漂移。

无论如何,这里有一些代码可以解决这个问题。

解决方案 1:将 0% 更改为 0.001% 即可解决问题。

解决方案 2:也许更好的方法是只编写一个动画并在每一位文本上添加延迟。 Here is a codepen for it

@-webkit-keyframes left-one {
0% {
-webkit-transform: translateX(100%);
}
20%,33% {
-webkit-transform: translateX(0);
}
50%,100% {
-webkit-transform: translateX(-100%);
}
}

/** Webkit Keyframes **/

@keyframes left-one {
0% {
transform: translateX(100%);
}
20%,33% {
transform: translateX(0);
}
50%,100% {
transform: translateX(-100%);
}
}

.marquee p:nth-child(1) {
animation: left-one 15s ease infinite;
-webkit-animation: left-one 15s ease infinite;
}
.marquee p:nth-child(2) {
animation: left-one 15s ease 5s infinite; // delay of 5s
-webkit-animation: left-one 15s ease 5s infinite;
}
.marquee p:nth-child(3) {
animation: left-one 15s ease 10s infinite; // delay of 10s
-webkit-animation: left-one 15s ease 10s infinite;
}

关于html - IE 上的 CSS 动画不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29264512/

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