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 を含む) でサポートされています。
このcssをGWTで動的に適用しようとすると:
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 のフィルター..)