收藏
回答

css帧动画的background position变化实际有偏差

框架类型 问题类型 终端类型 微信版本 基础库版本
小程序 Bug 工具 7.0.4 2.4.0

要用css animation-function的steps实现一个类似小人跑动的逐帧显示的动画,但是应用到小程序上,出现了每次移动距离偏大的问题,即不能移动到下一张图的准确的位置,有偏差,下一张图的中心不在图片显示区域的中心,越到后面越偏。后来我用同一张图片复制多次的一张雪碧图去实现,按道理讲应当静止不动,但实际上就是每次都往下移动了多一点点,所以越往后越明显。

用一张图来说明

.loading {
  width: 143rpx;
  height: 128rpx;
  background-image: url(xxx.png);
  background-size: cover;
  animation: ani 7s steps(7, end) infinite both;
}
@keyframes ni {
  from {
    background-position: 0 0;
  }
  to {
    /*128*7=896*/
    background-position: 0 -896rpx;
  }
}


回答关注问题邀请回答
收藏

1 个回答

  • 寒轩
    寒轩
    2019-08-19

    别用rpx,用px试试

    2019-08-19
    有用
    回复 3
    • Kerry_ZQ👀
      Kerry_ZQ👀
      2019-08-19
      试了一下,偏差更大了
      2019-08-19
      回复
    • 寒轩
      寒轩
      2019-08-19回复Kerry_ZQ👀
      我感觉可能是位移距离算错了,你先别管中间帧怎么样,先把结束位置调对了,再试试动画。结束位置真的是-896rpx吗,直接设这个值对不对呢
      2019-08-19
      回复
    • Kerry_ZQ👀
      Kerry_ZQ👀
      2019-08-19回复寒轩

      确实是换算算错的问题,要另外动态计算真正的rpx,最后决定直接用px了,谢谢解答!


      2019-08-19
      回复
登录 后发表内容
问题标签