Javascript CSS/JS时钟:IE8中奇怪的定位行为
我正在尝试在不使用任何图像的情况下制作一个动画时钟。我设法把大部分事情做好了;但是,当其中一只指针达到12时,它会一直跳到刻度盘的底部,然后逐渐向上移动,并在指向3时到达正确的位置。这只发生在IE8中。你知道怎么解决这个问题吗 这是HTML文件: 显示问题的屏幕截图:Javascript CSS/JS时钟:IE8中奇怪的定位行为,javascript,html,css,internet-explorer-8,Javascript,Html,Css,Internet Explorer 8,我正在尝试在不使用任何图像的情况下制作一个动画时钟。我设法把大部分事情做好了;但是,当其中一只指针达到12时,它会一直跳到刻度盘的底部,然后逐渐向上移动,并在指向3时到达正确的位置。这只发生在IE8中。你知道怎么解决这个问题吗 这是HTML文件: 显示问题的屏幕截图: 我猜您正在使用CSS3旋转和IE8矩阵过滤器作为后备。 MS矩阵过滤器的工作方式有点不同:旋转元素的边界框会被展开,并且比旋转之前发生的更多。由于边界框的定位点位于左上角,因此图像(或其他内容)会向下和向右移动,以获得正确的变换。
我猜您正在使用CSS3旋转和IE8矩阵过滤器作为后备。
MS矩阵过滤器的工作方式有点不同:旋转元素的边界框会被展开,并且比旋转之前发生的更多。由于边界框的定位点位于左上角,因此图像(或其他内容)会向下和向右移动,以获得正确的变换。您需要通过水平和垂直移动长方体来补偿此移动。不是那么容易的任务 静态处理:
互联网上有一些资源可以帮助您使用静态示例:
出于动态目的,如果您真的需要支持IE8,我建议您使用GSAP,这是著名的Greensock从ActionScript 3到JS的库端口。我知道它补偿了变换原点,并且在IE8中有一个兼容的旋转解决方案:
好的,我自己解决了。每当
角度变为270
,即变为-90
。因此,我刚刚添加了一条线,将360
添加到angle
如果小于0
则需要通过水平和垂直移动长方体来补偿此移动 这就是我一直试图做的,但是条件if((角度>270)和&(角度<360))
中的代码永远不起作用。有趣的是,如果我使用静态旋转(通过传递一个数字,比如说312
,而不是secondsHandAngle
),元素将被正确定位。谢谢您的建议 您需要补偿每个角度的尺寸变化(除了0、90、180和270°-这里是零)