【问题标题】:Css3 animation doesn't work in IE11Css3 动画在 IE11 中不起作用
【发布时间】:2015-01-31 08:34:06
【问题描述】:

嗨,我有这个动画。它在 Chrome、Firefox、Safari 中运行良好,但在 IE 11 中运行良好。你能告诉我问题出在哪里吗?我找不到为什么它在 IE 中不起作用。正如我所读的,IE11 应该可以很好地使用 css 转换。

.box {
  width: 100px;
  height: 100px;
}
.box div {
  background-color: blue;
  width: 50px;
  height: 100px;
  float: left;
}
.rotateDoorsLeft {
  animation: rotateDoorsLeft .75s infinite ease 0s alternate;
  -webkit-animation: rotateDoorsLeft .75s infinite ease 0s alternate;
  -moz-animation: rotateDoorsLeft .75s infinite ease 0s alternate;
  -ms-animation: rotateDoorsLeft .75s infinite ease 0s alternate;
}
.rotateDoorsRight {
  animation: rotateDoorsRight .75s infinite ease 0s alternate;
  -webkit-animation: rotateDoorsRight .75s infinite ease 0s alternate;
  -moz-animation: rotateDoorsRight .75s infinite ease 0s alternate;
  -ms-animation: rotateDoorsRight .75s infinite ease 0s alternate;
}
@-webkit-keyframes rotateDoorsLeft {
  from {
    -webkit-transform: perspective(360) rotateY(90deg);
    -webkit-transform-origin: 100% 50%;
  }
  to {
    -webkit-transform: perspective(360) rotateY(0deg);
    -webkit-transform-origin: 100% 50%;
  }
}
@-webkit-keyframes rotateDoorsRight {
  from {
    -webkit-transform: perspective(360) rotateY(-90deg);
    -webkit-transform-origin: 0% 50%;
  }
  to {
    -webkit-transform: perspective(360) rotateY(0deg);
    -webkit-transform-origin: 0% 50%;
  }
}
@-moz-keyframes rotateDoorsLeft {
  from {
    -moz-transform: perspective(360) rotateY(90deg);
    -moz-transform-origin: 100% 50%;
  }
  to {
    -moz-transform: perspective(360) rotateY(0deg);
    -moz-transform-origin: 100% 50%;
  }
}
@-moz-keyframes rotateDoorsRight {
  from {
    -moz-transform: perspective(360) rotateY(-90deg);
    -moz-transform-origin: 0% 50%;
  }
  to {
    -moz-transform: perspective(360) rotateY(0deg);
    -moz-transform-origin: 0% 50%;
  }
}
@keyframes rotateDoorsLeft {
  from {
    transform: perspective(360) rotateY(90deg);
    transform-origin: 100% 50%;
  }
  to {
    transform: perspective(360) rotateY(0deg);
    transform-origin: 100% 50%;
  }
}
@keyframes rotateDoorsRight {
  from {
    transform: perspective(360) rotateY(-90deg);
    transform-origin: 0% 50%;
  }
  to {
    transform: perspective(360) rotateY(0deg);
    transform-origin: 0% 50%;
  }
}
@-ms-keyframes rotateDoorsLeft {
  from {
    -ms-transform: perspective(360) rotateY(90deg);
    -ms-transform-origin: 100% 50%;
  }
  to {
    -ms-transform: perspective(360) rotateY(0deg);
    -ms-transform-origin: 100% 50%;
  }
}
@-ms-keyframes rotateDoorsRight {
  from {
    -ms-transform: perspective(360) rotateY(-90deg);
    -ms-transform-origin: 0% 50%;
  }
  to {
    -ms-transform: perspective(360) rotateY(0deg);
    -ms-transform-origin: 0% 50%;
  }
}
<div class="box">
  <div class="left-box rotateDoorsLeft"></div>
  <div class="right-box rotateDoorsRight"></div>
</div>

【问题讨论】:

  • 你应该把没有前缀的代码放在最后,把它移到底部,这就是它不起作用的原因

标签: html internet-explorer css-animations internet-explorer-11


【解决方案1】:

perspective(360) 值应用单位。例如,perspective(360px)

来自the Specification

perspective() = perspective( <length> )

length 的定义是“...一个紧跟单位标识符的数字。”因此,在没有单位的情况下提供一个非零的正数是无效的,并且因此不会在符合标准的浏览器中为您提供所需的结果。

【讨论】:

  • 谢谢,像魅力一样工作,我认为在其他浏览器中工作时不会出错
  • 在这种情况下始终检查规范; IE 只是遵守规则 :) 注意:我在 IE 团队工作。
猜你喜欢
  • 2015-09-18
  • 1970-01-01
  • 1970-01-01
  • 2016-04-20
  • 2017-05-22
  • 2014-08-09
  • 2012-08-09
  • 2014-07-18
相关资源
最近更新 更多