为了在我的 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);
}
所有主流浏览器(包括 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 + ")");
}
}
我收到以下错误:
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)
如何在 GWT 中动态设置这些依赖于浏览器的样式?(尤其是 IE 的过滤器..)