Chrome обрезает мою графику SVG при уменьшении масштаба. Firefox и IE 9 этого не делают.
Почему это происходит?
Вот пример js-fiddle . Там есть <div>
с <svg>
внутри,
а высота <svg>
равна 100%.
Если вы уменьшите масштаб в Chrome, то вы заметите, что <svg>
усекается, чем выше и выше над «Нижним», тем больше вы уменьшаете.
(Как мне этого избежать? Я думаю о том, чтобы запомнить максимальные значения x и y и явно установить ширину <svg>
, похоже, это работает.)
Обновление
Теперь я нашел обходной путь: вычислите коэффициент масштабирования браузера и увеличьте каждый <svg>
с обратным коэффициентом масштабирования - тогда они станут достаточно большими. Вот так:
if ($.browser.webkit) {
// outerWidth is measured in screen pixels, innerWidth in CSS pixels.
// So outerWidth / innerWidth is the zoom %.
var invZoom = (window.innerWidth / window.outerWidth * 100) +'%';
$('svg').css('width', invZoom).css('height', invZoom);
}
( Здесь - тема о расчете уровня масштабирования)
Мне все еще немного любопытно, почему Chrome делает это. Возможно, есть некоторые проблемы с пикселями экрана по сравнению с пикселями / размерами CSS.
Обновление: 2012-02-25
Теперь проблема больше не воспроизводима. Возможно, исправлена ошибка, связанная с Chrome (?).