IE9:为什么设置“-ms-transform”;工作于css,但不能与jquery.css()
IE9: Why setting "-ms-transform" works from css, but not with jquery.css()
可以了
div{
-ms-transform: rotate(30deg);
}
$("div").css("-ms-transform","rotate(30deg)");
有什么好主意吗?
同样的事情适用于所有其他浏览器,但不适用IE。当然,只有IE9支持它。
属性中的破折号('-')在脚本中使用无效。您应该使用msTransform
。
.css(...)
在解析之前将'background-color'
等属性转换为dom脚本等效(在本例中为'backgroundColor'
)。
要完成:JQuery.css
确实将虚线属性转换为camelCase。下面是字符串'-ms-transform'
:
JQuery.css
内部组件的表示var fcamelCase = function( all, letter ) {
return letter.toUpperCase();
};
var rdashAlpha = /-([a-z])/ig;
// JQuery.css does a replace operation with these variables
// on the raw property string:
alert('-ms-transform'.replace(rdashAlpha,fcamelCase)); //=> msTransform
所以这就是为什么$("div").css("-ms-transform","rotate(30deg)")
不能在IE9中工作。IE9期望:msTransform
.
为什么$("div").css("-moz-transform", "rotate(-90deg)")
在Firefox中工作?因为Mozilla显然决定为他们的-moz-[属性]使用完整的CamelCase,所以MozTransform
脚本样式属性是有效的(顺便说一下,mozTransform
不是……真的).
这都是浏览器的事了,在数字时代没什么新鲜的。
style
属性名中的破破号在DOM脚本中无效。
您可以通过使用对象表示法并以驼峰形式传递名称而不是用连字符来解决这个问题,如下所示:
$('div').css({ msTransform: 'rotate(30deg)' });
jsFiddle预览
jQuery 1.8带来了自动供应商前缀支持,所以现在可以在所有浏览器上工作:
$("div").css("transform","rotate(30deg)");
相关文章:
- JS可以在Chrome中工作,但不能在Firefox中工作
- WebRTC视频聊天可以在FF中使用,但不能在Chrome中使用
- jQuery Datepicker可以在Safari中工作,但不能在FF或Chrome中工作
- 三角库可以与firefox一起使用,但不能在Chrome中使用
- Highcharts可以从服务器加载数据,但不能更新
- 刷新GoogleMaps tile服务器可以使用JavaScript,但不能使用GWT
- node.js可以识别字符模式,但不能识别数字模式
- 如何在元素中处理鼠标事件,但不能在其子元素上处理
- Json到CSV下载,可以在chrome中工作,但不能在IE浏览器中工作
- jQuery$.post可以在chrome、safari中工作,但不能在FF中工作(声明成功回调函数未定义)
- Javascript可以在chrome中使用,但不能在其他浏览器中使用
- 如何在HTML / CSS中填充垂直和滚动中间窗格(Chrome可以工作,但不能Firefox)
- CSS和Javascript可以在内部服务器上工作,但不能在外部工作
- CSS精灵可以在页面的HTML中工作,但不能在Javascript中工作
- JQuery CSS Transform在Chrome和Firefox中工作,但不能在IE中工作
- jQuery .filter 正在使用 .css(display),但不能使用 .css(background-colo
- HTML|CSS|JS–Flip Cards可以使用1,但不能使用4
- 在页面样式标签内加载CSS,但不能从外部样式表加载
- 我的html/javascript/css网站可以在IE中工作,但不能在FF中工作
- IE9:为什么设置“-ms-transform”;工作于css,但不能与jquery.css()