使用CSS3转换:在IE原点问题中旋转

时间:2010-04-01 15:44:49

标签: javascript math internet-explorer css3

我正在开发一个使用新的CSS3 transform:rotate(180deg)功能的项目。每个现代浏览器都有自己的标签,但确实支持它。只有IE(当然)没有。但是使用过滤器可以实现同样的目的。 唯一的问题是,IE使用另一个来源,就像CSS3那样。我的猜测是,通过一些数学可以使原点成为中心,但我只是不明白(我的数学不是以前是什么样的。)

可以在此处找到代码和示例:http://jsbin.com/adiwa3/2。 在网址(http://jsbin.com/adiwa3/2/edit)后面添加/edit应该会打开编辑器进行测试。 在IE中查看它以查看问题,并在另一个现代浏览器中查看所需的结果。

当前修正(错误地)问题的部分是在if(i==#){...}之间,应该改为某些数学,因为li的数量可以改变。

我希望有人可以帮助我。谢谢你。

3 个答案:

答案 0 :(得分:1)

我发现这个项目用于跨浏览器转换http://www.useragentman.com/blog/2010/03/09/cross-browser-css-transforms-even-in-ie/。尝试分析代码以了解它在IE中的行为(或直接下载脚本:))。

答案 1 :(得分:0)

好的,我找到了解决方案。我需要使用costheta作为左侧位置,sintheta作为顶部位置,并将它们与宽度距离相乘。用高度和宽度求和,用2除以得到正确的值。

that.css({
  left: (cos * dis / 2) - (parseInt(that.width()) / 2),
  top: (sin * dis / 2) - (parseInt(that.height()) / 2)
});

您可以在此处找到工作代码http://jsbin.com/adiwa3/53,并在此处找到工作示例http://jeroenvanwarmerdam.nl/contact.aspx

答案 2 :(得分:0)

我遇到了同样的问题而无法在IE上运行Javascript。 Here is我发现的解决方案。