【发布时间】:2012-11-10 09:11:54
【问题描述】:
我已将(position: absolute; left: 50%; margin: -50px;) 100px 宽度的 div(容器)居中。
它有绝对定位子 div 与 overflow: hidden,其大小为 100x2000 px(此高度用于测试目的,如下所述)。
子 div 中有一张图片,它是绝对定位的。
图片是3100x100 px,,它包含动画帧。
我通过将其style.left 从 0 更改为 -1100 像素来设置此图像的动画,步长为 100 像素。
一切都很好,但是当身体宽度不均匀时我遇到了奇怪的问题。
如果有滚动条并且滚动条宽度奇数,就会发生这种情况(例如,在 Chrome/Win32 上发生这种情况)。 在这种情况下,只要动画图像通过屏幕边缘,图像就会在视觉上水平移动 1 个像素(对于 1920x1080,它大约发生在动画的 9-10 帧处)。 我找不到此行为的解决方法。
可以找到重现问题的工作示例here
子 div 高度设置为 2000px 以确保滚动条可见。 如果滚动条的宽度是偶数,您可以通过将浏览器窗口调整为奇数宽度来重现该问题。
【问题讨论】:
-
您应该更好地记录您的问题,例如,您可以将某些内容粘贴到 jsfiddle.net 吗?
-
我可以看看css和jquery代码吗
-
Fiddled: jsfiddle.net/PjHFc 问题似乎仅限于 Chrome/Webkit。
-
为什么不用gif动画?
-
哇,不知道 jsfiddle。对不起。从现在开始使用它;) gif 动画绝对不是我项目中需要的东西。 gif 有很多缺点,例如 8 位调色板和只有二进制透明度...
标签: javascript html css animation