【问题标题】:how to make rotating image with javascript work across browsers如何使用javascript使旋转图像跨浏览器工作
【发布时间】:2011-11-24 08:19:00
【问题描述】:

我正在使用 JavaScript 构建一个模拟时钟,我知道如果我使用 jQuery 来做会容易得多,但这里不是一个选项。

在 Chrome 和 Safari(指 webkit 浏览器)中一切正常,但在其他任何一个中都没有。

这是我的tick方法,基本上是根据时间旋转图像。

function tick(deg, elmt){
document.getElementById(elmt).setAttribute(
        "style", "transform:rotate(" + deg + "deg);"
      + "-moz-transform: (" + deg + "deg);"
      + "-o-transform: (" + deg + "deg);"
      + "-webkit-transform:rotate(" + deg + "deg);"
      + "filter:progid:DXImageTransform.Microsoft.BasicImage(" + deg + "deg);"
    ); 
}

有什么建议可以让它发挥作用吗?

【问题讨论】:

  • 有什么理由不使用 jQuery?没有 jQuery 的 JavaScript 就像没有标准库的 C。
  • @MaximYegorushkin:没有 DOM API 的 Javascript 就像没有标准库的 C。我认为 C 中没有与 jQuery 类似的通用类,除了用于 C 中嵌入式编程的 Arduino 库。
  • @slebetman:你说得对,更像是没有 Boost 的 C++。

标签: javascript firefox google-chrome cross-browser image-rotation


【解决方案1】:

-moz--o- 属性没有使用rotate,IE 语法中的rotation

function tick(deg, elmt){
document.getElementById(elmt).setAttribute(
        "style", "transform:rotate(" + deg + "deg);"
      + "-moz-transform: rotate(" + deg + "deg);"
      + "-o-transform: rotate(" + deg + "deg);"
      + "-webkit-transform:rotate(" + deg + "deg);"
      + "-ms-transform:rotate("+ deg +"deg);"
    ); 
}

http://jsfiddle.net/gaby/fjHHX/3/的演示


更新

更改代码以支持 IE9 -ms- 扩展并删除了 filter 一个不允许任意旋转(仅 0、90、180、270 度).. p>

为了支持 IE 版本 8 及以下版本,您可以使用矩阵转换,但它会变得丑陋.. 请参阅 .box_rotate 部分 http://css3please.com/
或者查看http://www.boogdesign.com/examples/transforms/matrix-calculator.html的源码了解如何操作

【讨论】:

猜你喜欢
  • 2012-08-03
  • 1970-01-01
  • 2020-08-20
  • 1970-01-01
  • 2016-05-20
  • 2019-07-11
  • 2013-05-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多