2016-09-22 9 views
2

私はSVGに取り組んでいます。これまでのところ、1つの問題を除いてすべてがうまくいきます。SVGモバイルオリエンテーションの変更

通常、ルート要素にwidth/height属性がない場合、SVGは、ビューポートを埋めるようにスケーリングされます。

しかし、モバイルでは、向きを変えるとこの機能が損なわれます。肖像画から風景に回転するとき、元の画面の幅はビューポートの幅になり、SVGは底から外れます。逆に回転すると反対の問題が生じ、SVGが非常に小さくなります。

ブラウザウィンドウのサイズを変更すると、これはデスクトップ上では起こりません。SVGは、使用可能なスペースを満たすようにスケールを正しく調整します。

画面の向きが変わったときにSVGスケールを正しく再計算するにはどうすればよいですか?

+0

私は「モバイル」で、各OSのすべてのブラウザを意味するわけではありません:どのブラウザ/ OSの組み合わせを使用していますか? –

+0

@PaulLeBeauああ、良い点。 Android搭載のChrome(HTC10携帯電話)で問題が発生しました –

答えて

1

問題は再描画を強制することで解決されました。これは、たとえ "変更"がノーオペレーションであっても、何らかの形でSVGを変更させる任意の操作を実行することによって行うことができます。この場合

...

window.addEventListener('resize',function() { 
    svg.setAttribute("x",0); 
}); 

は...うまく働きました。

関連する問題