为了扩展我的div中的元素,我正在使用这个css(这里是JSFiddle示例):
.scaled {
    transform: scale(0.5);
    -ms-transform: scale(0.5); /* IE 9 */
    -webkit-transform: scale(0.5); /* Safari and Chrome */
    -o-transform: scale(0.5); /* Opera */
    -moz-transform: scale(0.5); /* Firefox */
    filter: progid:DXImageTransform.Microsoft.Matrix(sizingMethod='auto expand',
        M11=0.5, M12=0,
        M21=0, M22=0.5);
}
Run Code Online (Sandbox Code Playgroud)
所有主流浏览器(包括IE8)都支持此功能.
现在,当我尝试在GWT中动态应用此css时:
public void setZoom(double val) {
    if (val != 1) {
        surface.getElement().getStyle().setProperty("transform", "scale(" + val + ")");
        surface.getElement().getStyle().setProperty("-ms-transform", "scale(" + val + ")");
        surface.getElement().getStyle().setProperty("-webkit-transform", "scale(" + val + ")");
        surface.getElement().getStyle().setProperty("-o-transform", "scale(" + val + ")");
        surface.getElement().getStyle().setProperty("-moz-transform", "scale(" + val + ")");
        surface.getElement().getStyle()
                .setProperty("filter", "progid:DXImageTransform.Microsoft.Matrix(sizingMethod='auto expand',M11=" + val + ", M12=0,M21=0, M22=" + val + ")");
    }
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
Caused by: java.lang.AssertionError: The style name '-ms-transform' should be in camelCase format
    at com.google.gwt.dom.client.Style$.assertCamelCase$(Style.java:1603)
    at com.google.gwt.dom.client.Style$.setProperty$(Style.java:1512)
Run Code Online (Sandbox Code Playgroud)
如何在GWT中动态设置这些依赖于浏览器的样式?(尤其是IE的过滤器..)
Ezw*_*ard 10
这是GWT的问题跟踪器条目,讨论限制和变通方法.
这是另一篇在Javascript中讨论它的文章; http://www.javascriptkit.com/javatutors/setcss3properties.shtml
基本上,将破折号( - )之后的字母转换为大写,因此-moz-transform是'MozTransform'
所以这应该工作;
    surface.getElement().getStyle().setProperty("MozTransform", "scale(" + val + ")");
Run Code Online (Sandbox Code Playgroud)
        |   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           11024 次  |  
        
|   最近记录:  |