代码之家  ›  专栏  ›  技术社区  ›  jerone

使用css3变换:旋转ie原点问题

  •  1
  • jerone  · 技术社区  · 14 年前

    我正在做一个使用新css3的项目 transform:rotate(180deg) 特征。每个现代浏览器都有自己的标签,但确实支持它。当然只有ie没有,但是使用过滤器同样可以实现。 唯一的问题是IE使用了另一个源代码,就像CSS3一样。 我的猜测是,有些数学可以把原点放在中心,但我就是搞不懂(我的数学不是以前的样子)。

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

    目前(错误地)解决问题的部分是 if(i==#){...} 应该换成一些数学公式, li 我们可以改变。

    我希望有人能帮我。谢谢你。

    3 回复  |  直到 12 年前
        1
  •  1
  •   mck89    14 年前

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

        2
  •  0
  •   jerone    14 年前

    好吧,我找到了解决办法。我需要使用Cosheta代表左边的位置,而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

        3
  •  0
  •   idanzalz    12 年前

    我也遇到了同样的问题,无法在ie上运行javascript。 Here is 我找到的解决办法。