我在屏幕上为元素设置动画,但在IE11中,奇怪的事情正在发生。 我正在开发中,所以我无法分享实时代码。但我创造了一个小提琴来复制这个问题。CSS3动画/关键帧,在IE11问题中用vw转换
基本上,当我使用视口宽度又名vw
与transform:translateX();
一个@keyframes
内部在动画中使用,IE11不反映viewport
的动画中的宽度。
因此,我创建了小提琴采取的是定位在viewport
的中心元素:
- 在屏幕的左边缘与出现
- 移动到元素 的一半启动它视口的中心,暂停
- ,然后移动到视口的右边缘,其中一半的元件关闭屏幕的
小提琴:https://jsfiddle.net/Bushwazi/7xe0wy8z/4/
- 在网站上我的工作,IE11动画元素作为更广泛的
- 在拨弄如果 页面分别为10倍,动画反向运行 永不它对页面的边缘。
因此,在这两种情况下,IE11在CSS动画中都没有使用正确宽度的vw
。
HTML:
<!--
The animation on the red block should start half on the screen, pause at the center of the screen and then finish by pausing at the edge of the screen, half of the box off of the screen
-->
<article>
<p>IE11 weirdness when transforming vw inside keyframes</p>
<strong><span>BLOCK</span></strong>
</article>
CSS:
* {
margin: 0;
padding: 0;
}
@-webkit-keyframes movee {
0% {
-webkit-transform: translateX(-50vw);
transform: translateX(-50vw)
}
10% {
-webkit-transform: translateX(-50vw);
transform: translateX(-50vw)
}
40% {
-webkit-transform: translateX(0vw);
transform: translateX(0vw)
}
60% {
-webkit-transform: translateX(0vw);
transform: translateX(0vw)
}
90% {
-webkit-transform: translateX(50vw);
transform: translateX(50vw)
}
100% {
-webkit-transform: translateX(50vw);
transform: translateX(50vw)
}
}
@keyframes movee {
0% {
-webkit-transform: translateX(-50vw);
transform: translateX(-50vw)
}
10% {
-webkit-transform: translateX(-50vw);
transform: translateX(-50vw)
}
40% {
-webkit-transform: translateX(0vw);
transform: translateX(0vw)
}
60% {
-webkit-transform: translateX(0vw);
transform: translateX(0vw)
}
90% {
-webkit-transform: translateX(50vw);
transform: translateX(50vw)
}
100% {
-webkit-transform: translateX(50vw);
transform: translateX(50vw)
}
}
body {
background-color: #eee;
background-image: -webkit-linear-gradient(left, black 50%, transparent 50.01%);
background-image: linear-gradient(90deg, black 50%, transparent 50.01%);
background-size: 20% 100%;
background-position: 0 0;
font-family: sans-serif;
height: 100vh;
}
article {
position: relative;
height: 100%;
width: 100%;
display: block;
}
p {
width: 100%;
background: #FFF;
text-align: center;
padding: 1em 0;
}
strong {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
height: 100px;
width: 100px;
background: red;
border: blue solid 3px;
position: absolute;
top: 50%;
left: 50%;
box-sizing: border-box;
text-align: center;
margin: -50px 0 0 -50px;
-webkit-animation: movee 5.0s linear infinite 0.0s;
animation: movee 5.0s linear infinite 0.0s;
}
我有IE11和视口的宽度同一个问题的出现......开始赏金,看是否我们在这里无法得到关注。 –