我试图在不使用任何图像的情况下制作动画时钟。我成功地完成了大部分工作;然而,当其中一只手达到12时,它会一直向下跳到表盘的底部,然后逐渐向上移动并在指向3时到达正确的位置。这只发生在IE8中。知道如何解决这个问题吗?
这是HTML文件:https://dl.dropboxusercontent.com/u/39330021/Test/CSS3-JS-Clock-3.htm
显示问题的屏幕截图:
答案 0 :(得分:4)
我猜你使用CSS3-rotation与IE8矩阵过滤器作为后备。 MS矩阵滤波器的工作方式略有不同:旋转元素的边界框得到扩展,占用的位置比旋转前更多。由于边界框的锚点位于左上方,因此图像(或其他内容)会向下移动并向右移动到正确的变换。您需要通过水平和垂直移动框来补偿此移动。这不是一件容易的事。
静态处理:
互联网上有一些资源可以帮助您使用静态示例:
动态处理:
为了你的动态目的,如果你真的真的需要支持IE8,我推荐GSAP,这是着名的Greensock的从ActionScript 3到JS的库端口。我知道它正在补偿转换起源,并且在IE8中具有兼容的旋转解决方案:
答案 1 :(得分:0)
好的,我自己想通了。只要angle
成为270
,IE就会-90
。我刚刚添加了一行,以便360
添加到angle
,如果它小于0
。