【问题标题】:translate3d between 0% and negative % in IE10在 IE10 中 translate3d 介于 0% 和负 % 之间
【发布时间】:2015-06-18 20:56:05
【问题描述】:

我有一个元素需要在其全宽的 50% 左右设置动画。

我已经通过以下(简化的)标记完成了这项工作:

<div class="wrapper">
  <div class="inner">Inner</div>
</div>

和风格:

.wrapper {
  position: relative;
  width: 300px;
  height: 200px;
}

.inner {
  position: absolute;
  top: 0; right: 0; bottom: 0; left: 0;
  animation: MOVE_AROUND 5s infinite;
}

带关键帧动画:

@keyframes MOVE_AROUND {
  0%, 10% { transform: translate3d(0, 0, 0); }
  20%, 40% { transform: translate3d(-50%, 0, 0); }
  60%, 80% { transform: translate3d(50%, 0, 0); }
  90%, 100% { transform: translate3d(0, 0, 0); }
}

注意:为简洁起见,省略了供应商前缀

在 IE10 中,它不是移动元素宽度的 50%,而是在负向移动较小的(任意?)量,然后在正向移动相同的量,然后在动画的 80% 和 90% 之间的阶段,它会捕捉到完整的 50% 距离,然后又回到 0%。

我想这与负百分比有关,但我在其他地方找不到任何关于此的信息。

这是一支笔:http://codepen.io/alexcoady/pen/JogPgx

【问题讨论】:

    标签: css internet-explorer-10 css-animations css-transforms


    【解决方案1】:

    在转换为 0 的 2 个关键帧之间转换时,IE 10 似乎有一些奇怪的错误。

    虽然肯定不理想,但如果您对两个关键帧使用几乎为零的百分比,您可以在 IE 10 中实现相同的效果。

    示例(Codepen):

    @keyframes MOVE_AROUND_TRANSFORM {
      0% {
        transform: translate3d( 0, 0, 0 );
      }
      10% {
        transform: translate3d( 0.0001%, 0, 0 );
      }
      20%, 40% {
        transform: translate3d( -50%, 0, 0 );
      }
      60%, 80% {
        transform: translate3d( 50%, 0, 0 );
      }
      90% {
        transform: translate3d( 0.0001%, 0, 0 );
      }
      100% {
        transform: translate3d( 0, 0, 0 );
      }
    }
    

    或者,您可以只在两个关键帧中使用几乎为零的值。

    示例(Codepen):

    @keyframes MOVE_AROUND_TRANSFORM {
      0%, 10% {
        transform: translate3d( 0.0001%, 0, 0 );
      }
      20%, 40% {
        transform: translate3d( -50%, 0, 0 );
      }
      60%, 80% {
        transform: translate3d( 50%, 0, 0 );
      }
      90%, 100% {
        transform: translate3d( 0.0001%, 0, 0 );
      }
    }
    

    谢天谢地,这个问题似乎已在 IE 11 中得到修复。

    【讨论】:

    • 我在 IE 11 中遇到了类似的问题,但几乎 0 实际上为我修复了它。
    猜你喜欢
    • 2012-04-10
    • 2015-02-20
    • 1970-01-01
    • 2022-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多