В настоящее время я использую zoom.js для увеличения некоторых форм SVG, которые я нарисовал в HTML.Рассмотрим следующий фрагмент:
<div id="circle">
<svg xmlns="http://www.w3.org/2000/svg">
<circle cx="50" cy="50" r="50" fill="red" />
</svg>
</div>
С помощью обработчика событий:
$('#circle').bind('click', function(event) {
zoom.in({
element: document.querySelector( '#circle' )
});
event.stopPropagation();
});
После увеличения границы формы SVG выглядят довольно пикселизированными, и похоже, что форма SVG неперерисован после увеличения.Такое же поведение, по-видимому, происходит со всеми элементами DOM (например, DIV, заполненным цветом, или текстовым элементом).Однако, когда я смотрю на веб-сайт, на который ссылаются выше, текстовые элементы, кажется, перерисовываются после увеличения.У меня возникают проблемы с пониманием того, почему он не перерисовывается в моем случае.
Редактировать: Я также пытался поместить элемент SVG в отдельный файл и включить его, например, так:
<embed src="circle.svg" type="image/svg+xml">
Та же проблема возникает при использовании этого метода.
Редактировать 2: Я попытался установить отображение элемента на «none» и сбросить обратно на «block» после увеличения - некоторые сообщения, казалось, предполагали, что это вызовет перерисовку - но элемент все еще выглядит пиксельным послеснова становится видимым:
$('#circle').css('display', 'none').css('display', 'block');