igor-fedorov
@igor-fedorov
Full Stack разработчик

Можно ли менять цвета в SVG?

Добрый день. Можно ли средствами Jquery изменять цвета (заливки) некоторых элементов в SVG?

Допустим, есть несколько кнопок, например, красный, синий, фиолетовый, зелёный.
Чтобы по нажатию на них сменялся цвет одного элемента в SVG.

Заранее всем спасибо.
  • Вопрос задан
  • 476 просмотров
Решения вопроса 1
In4in
@In4in
°•× JavaScript Developer ^_^ ו°
Получаете нужный элемент и elem.setAttribute("fill", color);.

<svg width="200" height="200">
  <rect width="100" height="100" x="50" y="50"
        fill="none" stroke="gold"
        stroke-width="10"/>
  <rect width="160" height="160" x="20" y="20"
        fill="none" stroke="yellowgreen"
        stroke-width="10%"/>
</svg>

<div>
    <button data-color="orange">Оранжевый</button>
    <button data-color="tomato">Томатный</button>
</div>


document.querySelector("div").onclick = function(e){
   var t = e.target;
   if(t.parentNode===this) 
       document.querySelector("rect").setAttribute("fill", t.dataset.color);
}


Вживую: jsfiddle.net/In4in/gyqpvwbu

а можно в Jquery это воплотить?


$("div").on("click", "button", function(){
       $("rect").attr("fill", $(this).data("color"));
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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