Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.12.2023, 17:07
Аспирант
Отправить личное сообщение для firep91613 Посмотреть профиль Найти все сообщения от firep91613
 
Регистрация: 24.10.2023
Сообщений: 58

Вставка элемента в SVG
Подскажите, почему не вставляется?

const rect = `<svg width="500" height="250">
				<rect x="5" y="5" width="490" height="240" style="fill: white; stroke: gray; stroke-width: 5;" />
			  </svg>`;

document.body.insertAdjacentHTML('afterbegin', rect);

function createCicrle(cx, cy, r = 20) {
  let circle = document.createElementNS('http://www.w3.org/2000/svg', 'circle');
  circle.setAttribute('r', r);
  circle.setAttribute('cx', cx);
  circle.setAttribute('cy', cy);
  circle.setAttribute('fill', 'red');
  circle.setAttribute('stroke-width', 1);
  return circle;
}

let h = document.getElementsByTagName('rect')[0].getBBox().height;
let r = 20;
let cy = h / 2 - (r / 2);
let cx = r;

document.getElementsByTagName('rect')[0].append(createCicrle(cx, cy, r));
Ответить с цитированием
  #2 (permalink)  
Старый 19.12.2023, 18:35
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

firep91613,
<!DOCTYPE HTML>
<html>

<head>
    <title>Untitled</title>
</head>

<body>
    <script>
        const rect = `<svg width="500" height="250" >
                <rect x="5" y="5" width="490" height="240" style="fill: white; stroke: gray; stroke-width: 5;" />
              </svg>`;

        document.body.insertAdjacentHTML('afterbegin', rect);

        function createCicrle(cx, cy, r = 20) {
            let circle = document.createElementNS('http://www.w3.org/2000/svg', 'circle');
            circle.setAttribute('r', r);
            circle.setAttribute('cx', cx);
            circle.setAttribute('cy', cy);
            circle.style.fill = 'red';
            circle.style.strokeWidth = '1';
            return circle;
        }

        let h = document.getElementsByTagName('rect')[0].getBBox().height;
        let r = 20;
        let cy = h / 2 - (r / 2);
        let cx = r + 7;

        document.getElementsByTagName('rect')[0].after(createCicrle(cx, cy, r));
    </script>
</body>

</html>
Ответить с цитированием
  #3 (permalink)  
Старый 20.12.2023, 17:38
Аспирант
Отправить личное сообщение для firep91613 Посмотреть профиль Найти все сообщения от firep91613
 
Регистрация: 24.10.2023
Сообщений: 58

рони,
благодарю.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
JS как изменить позицию SVG элемента? mkrichet Общие вопросы Javascript 2 09.12.2015 08:59
получение значений из массива и вставка нового элемента malefikus13 Общие вопросы Javascript 7 06.10.2015 11:56
Создание SVG элемента и вставка на страницу FINoM Events/DOM/Window 3 13.09.2015 16:47
Вставка элемента после элемента с определённым номером. koeshiro Общие вопросы Javascript 1 13.01.2013 13:05
Массивы удаление элемента и вставка на его место другого mycoding Общие вопросы Javascript 1 19.04.2010 22:30