CSS animation:How 使图像对象无缝反弹?

CSS animation:How to make the image object bounce back seamlessly?

演示: http://www.suanle.lol/move.php

在动画demo中可以看到,当鸡蛋刚好弹回来的时候,先闪出一秒再闪入,这样动画就断了。所以我想知道为什么会这样,我该如何解决?

如果你想查看动图:

其实不仅仅限于.gif,任何格式的图片都会出现这个问题

代码如下:

#egg {
  z-index: 2;
  margin-left: 50px;
  /*display: none;*/
  position: absolute;
  animation-duration: 6.4s;
  animation-name: slide;
  animation-iteration-count: infinite;
  /*animation: pulse 5s infinite;*/
}
@keyframes slide {
  0% {
    margin-left: 10px;
    /*width: 300%; */
  }
  49% {
    -moz-transform: scaleX(1);
    -o-transform: scaleX(1);
    -webkit-transform: scaleX(1);
    transform: scaleX(1);
    filter: FlipH;
    -ms-filter: "FlipH";
  }
  50% {
    margin-left: 350px;
    -moz-transform: scaleX(-1);
    -o-transform: scaleX(-1);
    -webkit-transform: scaleX(-1);
    transform: scaleX(-1);
    filter: FlipH;
    -ms-filter: "FlipH";
  }
  100% {
    margin-left: 10px;
    -moz-transform: scaleX(-1);
    -o-transform: scaleX(-1);
    -webkit-transform: scaleX(-1);
    transform: scaleX(-1);
    filter: FlipH;
    -ms-filter: "FlipH";
  }
}
<img id="egg" src="http://i.stack.imgur.com/Ke7wO.gif">

好的,这看起来好多了,将 49% 更改为 49.9% 并增强了一点,问题是 1%6.4s 动画持续时间仍然很明显,这使得它 "flashes".

通过减少从 1%0.1% 的差异,从 [=18 转换所需的时间=]到scaleX(-1)不明显

jsFiddle

#container {
  position: absolute;
  background-color: rgb(231, 143, 128);
  width: 310px;
  height: 42px;
  margin-left: 50px;
  z-index: 1;
}
#egg {
  z-index: 2;
  margin-left: 50px;
  /*display: none;*/
  position: absolute;
  animation-duration: 6.4s;
  animation-name: slide;
  animation-iteration-count: infinite;
  /*animation: pulse 5s infinite;*/
}
@keyframes slide {
  0% {
    margin-left: 10px;
    /*width: 300%; */
  }
  49.9% {
    -moz-transform: scaleX(1);
    -o-transform: scaleX(1);
    -webkit-transform: scaleX(1);
    transform: scaleX(1);
    filter: FlipH;
    -ms-filter: "FlipH";
  }
  50% {
    margin-left: 350px;
    -moz-transform: scaleX(-1);
    -o-transform: scaleX(-1);
    -webkit-transform: scaleX(-1);
    transform: scaleX(-1);
    filter: FlipH;
    -ms-filter: "FlipH";
  }
  100% {
    margin-left: 10px;
    -moz-transform: scaleX(-1);
    -o-transform: scaleX(-1);
    -webkit-transform: scaleX(-1);
    transform: scaleX(-1);
    filter: FlipH;
    -ms-filter: "FlipH";
  }
}
<img id="egg" src="http://i.stack.imgur.com/Ke7wO.gif">