为什么我不能用jQuery设置-ms-transform?

时间:2011-06-25 17:31:04

标签: jquery css css3

这是我整个页面的代码。 div在Firefox中旋转(如预期的那样),但不在IE9中。使用普通CSS设置-ms-transform属性会使div旋转,因此问题似乎源于尝试使用jQuery设置属性。有谁知道发生了什么事?

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" charset="utf-8" src="/jquery-latest.pack.js"></script>
<script>    
    $(function(){
        $("#divid").css("-ms-transform", "rotate(-90deg)");   // For IE9
        $("#divid").css("-moz-transform", "rotate(-90deg)");  // For Firefox
    });
</script>
</head>
<body>
    <div id="divid">Foo</div>
</body>
</html>

3 个答案:

答案 0 :(得分:4)

为此可能更容易使用CSS类:

.rotated {
    -ms-transform: rotate(-90deg);
    -moz-transform: rotate(-90deg);
}

------

jQuery(function ($) {
    $('#divid').addClass('rotated');
});

答案 1 :(得分:3)

实际上,你可以! : - )

$('#divid').css({ msTransform: 'rotate(-90deg)' }); // for IE9

非常相关IE9: Why setting "-ms-transform" works from css, but not with jquery.css()

答案 2 :(得分:0)

这可能是相关的:http://bugs.jquery.com/ticket/8346

报告使用jQuery.cssHooks的人:

jQuery.cssHooks["MsTransform"] = {
    set: function( elem, value ) {
        elem.style.msTransform = value;
    }
};

$("#divid").css("MsTransform", "rotate(-90deg)");