В SVG.js каждый графический элемент может иметь
класс (class) и
идентификатор (id), что позволяет гибко
управлять стилями и взаимодействием с элементами. Эти атрибуты
интегрируются как с CSS, так и с методами самой библиотеки.
idКаждый SVG-элемент может иметь уникальный идентификатор. В SVG.js это
достигается с помощью метода .id(). Пример:
const draw = SVG().addTo('body').size(300, 300);
const circle = draw.circle(100).fill('red').id('myCircle');
id должен быть уникальным в пределах
документа.#myCircle {
stroke: black;
stroke-width: 5;
}
.find() для поиска элемента по
id:const found = draw.find('#myCircle')[0];
found.fill('blue');
classАтрибут class позволяет присвоить элементу одну или
несколько категорий, что удобно для группового применения стилей или
взаимодействия.
const rect1 = draw.rect(80, 50).fill('green').addClass('highlight');
const rect2 = draw.rect(60, 60).fill('orange').addClass('highlight');
rect1.addClass('highlight active');
.hasClass():if(rect1.hasClass('active')) {
rect1.fill('yellow');
}
.removeClass():rect1.removeClass('highlight');
SVG.js предоставляет гибкие методы управления классами:
.addClass(className) — добавляет класс..removeClass(className) — удаляет класс..toggleClass(className) — переключает класс..hasClass(className) — проверяет наличие класса.Пример динамического изменения:
rect2.toggleClass('active'); // Добавляет класс, если его нет, или удаляет, если есть
id и
class вместеЭффективное сочетание классов и идентификаторов облегчает выборку и манипуляции:
const rect3 = draw.rect(50, 50).fill('purple').id('uniqueRect').addClass('highlight');
draw.find('.highlight').forEach(el => el.opacity(0.5));
draw.find('#uniqueRect').stroke({ color: 'black', width: 3 });
highlight становятся
полупрозрачными.id='uniqueRect' получает чёрную обводку.SVG.js интегрируется с CSS полностью:
.highlight {
stroke: blue;
stroke-width: 2;
}
#uniqueRect {
fill: purple;
}
Эти стили автоматически применяются к элементам с соответствующими
class и id. Можно комбинировать прямое
управление через методы библиотеки и стили CSS для более сложных
эффектов.
id..addClass(), .removeClass(),
.toggleClass() позволяют создавать динамические
интерактивные эффекты.Можно динамически менять id и class:
circle.id('newCircleId');
circle.addClass('active');
circle.removeClass('highlight');
Это особенно полезно для анимаций и интерактивных приложений, где элементы SVG появляются, исчезают или меняют состояние в реальном времени.
SVG.js поддерживает SVG.Group, и классы могут
применяться к группам:
const group = draw.group().addClass('groupHighlight');
group.add(draw.circle(40).fill('red'));
group.add(draw.rect(50, 50).fill('blue'));
Эти методы делают работу с классами и идентификаторами в SVG.js максимально удобной для создания интерактивных и стилизованных SVG-графиков.