如何使用JavaScript动态设置样式-webkit-transform?

rym*_*ymn 107 javascript webkit

我想-webkit-transform: rotate()动态地使用JavaScript 更改属性,但常用的setAttribute不起作用:

img.setAttribute('-webkit-transform', 'rotate(60deg)');
Run Code Online (Sandbox Code Playgroud)

.style也不起作用......

如何在JavaScript中动态设置它?

Óla*_*age 195

JavaScript样式名称是WebkitTransformOriginWebkitTransform

element.style.webkitTransform = "rotate(-2deg)";
Run Code Online (Sandbox Code Playgroud)

此处检查WebKit的DOM扩展参考.

  • 如果你想要多于一个,请用空格分隔例如:`element.style.webkitTransform ="rotate(-2deg)translateX(100px)";` (9认同)
  • MozTransform应该是你的朋友. (3认同)

Arm*_*ier 89

以下是大多数常见供应商的JavaScript表示法:

webkitProperty
MozProperty
msProperty
OProperty
property
Run Code Online (Sandbox Code Playgroud)

我重置内联变换样式,如:

element.style.webkitTransform = "";
element.style.MozTransform = "";
element.style.msTransform = "";
element.style.OTransform = "";
element.style.transform = "";
Run Code Online (Sandbox Code Playgroud)

像这样使用jQuery:

$(element).css({
    "webkitTransform":"",
    "MozTransform":"",
    "msTransform":"",
    "OTransform":"",
    "transform":""
});
Run Code Online (Sandbox Code Playgroud)

请参阅博客文章使用JavaScript编码供应商前缀(2012-03-21).

  • jQuery自动选择正确的前缀,只需编写`transform`. (5认同)

And*_*c ॐ 11

尝试使用

img.style.webkitTransform = "rotate(60deg)"
Run Code Online (Sandbox Code Playgroud)


the*_*dnp 5

如果您想通过这样做,setAttribute您可以style像这样更改属性:

element.setAttribute('style','transform:rotate(90deg); -webkit-transform: rotate(90deg)') //etc
Run Code Online (Sandbox Code Playgroud)

如果您想重置所有其他内联样式并且只再次设置您需要的样式属性的值,这将很有帮助,但在大多数情况下您可能不想要那样。这就是为什么每个人都建议使用这个:

element.style.transform = 'rotate(90deg)';
element.style.webkitTransform = 'rotate(90deg)';
Run Code Online (Sandbox Code Playgroud)

以上等价于

element.style['transform'] = 'rotate(90deg)';
element.style['-webkit-transform'] = 'rotate(90deg)';
Run Code Online (Sandbox Code Playgroud)