Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript CSS/JS时钟:IE8中奇怪的定位行为_Javascript_Html_Css_Internet Explorer 8 - Fatal编程技术网

Javascript CSS/JS时钟:IE8中奇怪的定位行为

Javascript CSS/JS时钟:IE8中奇怪的定位行为,javascript,html,css,internet-explorer-8,Javascript,Html,Css,Internet Explorer 8,我正在尝试在不使用任何图像的情况下制作一个动画时钟。我设法把大部分事情做好了;但是,当其中一只指针达到12时,它会一直跳到刻度盘的底部,然后逐渐向上移动,并在指向3时到达正确的位置。这只发生在IE8中。你知道怎么解决这个问题吗 这是HTML文件: 显示问题的屏幕截图: 我猜您正在使用CSS3旋转和IE8矩阵过滤器作为后备。 MS矩阵过滤器的工作方式有点不同:旋转元素的边界框会被展开,并且比旋转之前发生的更多。由于边界框的定位点位于左上角,因此图像(或其他内容)会向下和向右移动,以获得正确的变换。

我正在尝试在不使用任何图像的情况下制作一个动画时钟。我设法把大部分事情做好了;但是,当其中一只指针达到12时,它会一直跳到刻度盘的底部,然后逐渐向上移动,并在指向3时到达正确的位置。这只发生在IE8中。你知道怎么解决这个问题吗

这是HTML文件:

显示问题的屏幕截图:


我猜您正在使用CSS3旋转和IE8矩阵过滤器作为后备。
MS矩阵过滤器的工作方式有点不同:旋转元素的边界框会被展开,并且比旋转之前发生的更多。由于边界框的定位点位于左上角,因此图像(或其他内容)会向下和向右移动,以获得正确的变换。您需要通过水平和垂直移动长方体来补偿此移动。不是那么容易的任务

静态处理:
互联网上有一些资源可以帮助您使用静态示例:

动态处理:
出于动态目的,如果您真的需要支持IE8,我建议您使用GSAP,这是著名的Greensock从ActionScript 3到JS的库端口。我知道它补偿了变换原点,并且在IE8中有一个兼容的旋转解决方案:


好的,我自己解决了。每当
角度
变为
270
,即变为
-90
。因此,我刚刚添加了一条线,将
360
添加到
angle
如果小于
0

则需要通过水平和垂直移动长方体来补偿此移动 这就是我一直试图做的,但是条件
if((角度>270)和&(角度<360))
中的代码永远不起作用。有趣的是,如果我使用静态旋转(通过传递一个数字,比如说
312
,而不是
secondsHandAngle
),元素将被正确定位。

谢谢您的建议

您需要补偿每个角度的尺寸变化(除了0、90、180和270°-这里是零)