Задать вопрос
@AndreyIlinskiy
инженер-системотехник

Как проще через JS менять атрибуты элемента SVG?

Всем здравствуйте! Хочу менять координаты x2, y2 элемента line на значения некоторой функции от координат мышки и координат других элементов SVG. Пишу скрипт на JS. Работаю через getAttribute, setAttribute примерно так:
<svg width="100" height="100">
	<line id="line1" x1="10" y1="10" x2="50" y2="50" stroke="red"/>
	<line id="line2" x1="10" y1="10" x2="50" y2="50" stroke="red"/>
<svg>

<script>
	var line1=document.getElementById("line1");
	var line2=document.getElementById("line2");
	
	var x1=line1.getAttribute("x2")
	
	line2.setAttribute("x2", функция(координаты мышки, x1, другие переменные));
</script>

Может можно как то проще? Хотя бы через объект.свойство=...
  • Вопрос задан
  • 1993 просмотра
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
petermzg
@petermzg
Самый лучший программист
_elm: function(sel){
     return this._cldElm(this.svg, sel);
},
_cldElm: function(elm, sel){
    return elm.querySelector(sel);
},
setAttr: function(el, ns, nm, vl){
     el.setAttributeNS(ns, nm, vl);
},
setAttrs: function(el, attrs){
     for (var a in attrs)
         this.setAttr(el, null, a, attrs[a]);
},
// и пример использования
var ln = this._elm('.svg-line');
this.setAttrs(ln, { x1: x - 50, y1: (rowId * 80) + 40, x2: x - 10, y2: y + 35 });
Ответ написан
@ddd329
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы