Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.09.2018, 11:51
Аватар для MC-XOBAHCK
Профессор
Отправить личное сообщение для MC-XOBAHCK Посмотреть профиль Найти все сообщения от MC-XOBAHCK
 
Регистрация: 06.08.2017
Сообщений: 473

Возможна ли перерисовка SVG
Здравствуйте!
Подскажите, есть ли возможность перерисовки SVG типа как перерисовать канвас?

Вот сверстал такой пример:
<div class="testSVG">
    <svg viewBox="0 0 180 100" style="fill: #f7f7f7;stroke: #ccc; stroke-width: 2px; display: block; width: 180px; height: 100px;">
        <polygon points="2,2 178,2 178,98 2,98"></polygon>
    </svg>
</div>
<button id="teeest">Добавить линию в SVG</button>

<script>
    document.querySelector('#teeest').addEventListener('click', function () {
            let line = document.createElement('line');
            line.setAttribute('stroke', 'violet');
            line.setAttribute('stroke-width', 5);
            line.setAttribute('x1', 0);
            line.setAttribute('y1', 0);
            line.setAttribute('x2', 180);
            line.setAttribute('y2', 100);

            document.querySelector('.testSVG svg').appendChild(line);
        })
</script>

Если нажать кнопку "Добавить линию в SVG", то в HTML видно как добавляется во внутрь SVG элемент line, но он неотрисовуется.
Его можно как то перерисовать, типа как канвас? или для таких задач нужно использовать канвас, а SVG для этого не предназначен?
Ответить с цитированием
  #2 (permalink)  
Старый 03.09.2018, 12:11
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

MC-XOBAHCK,
let line = document.createElementNS('http://www.w3.org/2000/svg','line');
Ответить с цитированием
  #3 (permalink)  
Старый 03.09.2018, 12:36
Аватар для MC-XOBAHCK
Профессор
Отправить личное сообщение для MC-XOBAHCK Посмотреть профиль Найти все сообщения от MC-XOBAHCK
 
Регистрация: 06.08.2017
Сообщений: 473

рони, СПАСИБО! Да, так работает.
А вы не знаете, протокол http не будет создавать проблем для сайтов работающих на протоколе https ?
Сама ссылка на w3 перенаправляет на https, но если изменить протокол в указанном фрагменте js, то добавленный элемент в svg неотрисовывается.
Ответить с цитированием
  #4 (permalink)  
Старый 03.09.2018, 13:07
Аватар для MC-XOBAHCK
Профессор
Отправить личное сообщение для MC-XOBAHCK Посмотреть профиль Найти все сообщения от MC-XOBAHCK
 
Регистрация: 06.08.2017
Сообщений: 473

Сообщение от MC-XOBAHCK Посмотреть сообщение
протокол http не будет создавать проблем для сайтов работающих на протоколе https
Нашёл ответ в документации к createElementNS():

Valid URI:
HTML - использование http://www.w3.org/1999/xhtml
SVG - использование http://www.w3.org/2000/svg
XBL - использование http://www.mozilla.org/xbl
XUL - использование http://www.mozilla.org/keymaster/gat...re.is.only.xul
Ответить с цитированием
  #5 (permalink)  
Старый 03.09.2018, 22:11
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,584

Кстати интересное направление поиска дырок для mitm атак... могло бы быть.)
__________________
29375, 35
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
переименовать название стилей в SVG перед вставкой в другой SVG Герасим Events/DOM/Window 9 09.06.2018 09:16
SVG теги юзера Герасим Общие вопросы Javascript 1 02.03.2018 21:29
Как лучше подключать SVG объект Black_Star (X)HTML/CSS 0 02.12.2016 00:09
SVG CSS, SVG to WOFF kobezzza Firefox/Mozilla 2 29.03.2013 15:59
Inline SVG as background Paguo-86PK Элементы интерфейса 0 16.12.2011 20:12