2016-09-22 5 views
2

Я работаю над SVG, и до сих пор все хорошо, за исключением одной проблемы.Изменение ориентации мобильных устройств SVG

Как правило, при отсутствии атрибутов width/height на корневом элементе SVG будет масштабироваться, чтобы заполнить область просмотра.

Однако на мобильном устройстве я замечаю, что изменение ориентации нарушает эту функциональность. При повороте от портрета к пейзажу первоначальная ширина экрана становится шириной окна просмотра, а SVG выходит из нижней части. Вращение назад дает противоположную проблему, приводящую к очень маленькому SVG.

Это не происходит на рабочем столе при изменении размера окна браузера - SVG правильно настраивает масштаб, чтобы заполнить доступное пространство.

Как заставить масштаб SVG правильно пересчитать, когда меняется ориентация экрана?

+0

Я предполагаю, что на «на мобильном телефоне» вы не имеете в виду каждый браузер в каждой ОС :) Какую комбинацию браузера/ОС вы используете? –

+0

@PaulLeBeau Ах, хороший момент. Я столкнулся с проблемой в Chrome на Android (телефон HTC10) –

ответ

1

Проблема решена путем принудительного перерисовки. Это можно сделать, выполнив любую операцию, которая приводит к тому, что SVG каким-то образом изменится, даже если это «изменение» не является оператором.

В этом случае ...

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

... работал нормально.

Смежные вопросы