SVG.js предоставляет удобные инструменты для управления видимостью и отображением объектов SVG. Основными свойствами, которые отвечают за видимость, являются visible, opacity, а также методы работы с атрибутом display и CSS-классами.
visibleСвойство visible позволяет быстро скрывать или
показывать элемент:
const rect = draw.rect(100, 100).fill('#f06');
rect.visible(false); // элемент скрыт
rect.visible(true); // элемент отображается
true — элемент отображается на холсте.false — элемент становится невидимым, но остаётся в DOM
и участвует в вычислениях.Использование visible полезно, когда нужно временно
скрывать объект без удаления его из дерева SVG.
displayМетод attr позволяет напрямую управлять CSS-атрибутом
display:
rect.attr({ display: 'none' }); // скрыть элемент
rect.attr({ display: 'block' }); // показать элемент
Особенность display: none в том, что элемент полностью
исключается из визуального потока и не занимает места, а
visible(false) оставляет его место, если элемент участвует
в компоновке, например, при использовании группы
<g>.
opacityДля постепенного скрытия или прозрачности используется
opacity:
rect.opacity(0); // полностью прозрачный
rect.opacity(0.5); // полупрозрачный
rect.opacity(1); // полностью видимый
0 делает элемент невидимым, но он по-прежнему
реагирует на события.1 — элемент полностью видим.Использование opacity удобно для создания анимаций
появления и исчезания объектов.
hide() и
show()SVG.js предоставляет удобные методы hide() и show(), которые являются обёртками над управлением видимостью:
rect.hide(); // скрывает элемент
rect.show(); // показывает элемент
Методы автоматически корректно обрабатывают атрибуты
display и visibility, что позволяет избегать
прямой работы с CSS в большинстве случаев.
Если элементы объединены в группу <g>, можно
управлять их видимостью централизованно:
const group = draw.group();
const circle = group.circle(50).fill('#0f0');
const square = group.rect(60, 60).fill('#00f');
group.hide(); // скрываются все элементы группы
group.show(); // отображаются снова
Группы полезны для управления сложными композициями, когда требуется скрыть или показать сразу несколько элементов.
Для создания эффектов появления и исчезания применяется метод
animate():
rect.animate(500).opacity(0); // плавное исчезновение за 0.5 секунды
rect.animate(500).opacity(1); // плавное появление
Можно комбинировать с hide() после завершения анимации
для полного исключения элемента из визуального потока:
rect.animate(500).opacity(0).after(() => rect.hide());
Часто для оптимального контроля видимости используют комбинацию
visible, opacity и display:
rect.visible(false).opacity(0).attr({ display: 'none' });
Такой подход позволяет скрывать элемент, делать его полностью прозрачным и исключать из потока DOM, обеспечивая максимальную гибкость.
visible(false) для временного скрытия
объектов без удаления из DOM.opacity применять для анимаций и плавного изменения
прозрачности.display: none и hide() применять, когда
нужно полностью исключить элемент из визуального потока.Эффективное использование этих инструментов позволяет создавать динамичные и интерактивные интерфейсы с SVG.js, минимизируя лишние операции с DOM и обеспечивая плавность визуальных эффектов.