Креативная идея для создания необычных переходов между контент-блоками на сайте. Шесть разных вариантов использования связки JS+CSS+SVG.
Что у нас сегодня
Эффекты SVG — это всегда прекрасно. А когда этим пользуется пряморукий программист + дизайнер — получаем то, что на демо. За основу взято визуальное отображение вертикального меню при клике на «гамбургер». Шесть различных анимаций появления, которые удивят Ваших пользователей. Вы легко можете использовать данные наработки в своих проектах.
Техническая часть
Приведем основные моменты кода. Делаем SVG:
<svg class="shape-overlays" viewBox="0 0 100 100" preserveAspectRatio="none"> <path class="shape-overlays__path"></path> <path class="shape-overlays__path"></path> <path class="shape-overlays__path"></path> </svg>
CSS данного селектора:
.shape-overlays { width: 100vw; height: 100vh; position: fixed; top: 0; left: 0; }
Стили для path-элементов:
.shape-overlays path:nth-of-type(1) { fill: #c4dbea; } .shape-overlays path:nth-of-type(2) { fill: #4c688b; } .shape-overlays path:nth-of-type(3) { fill: #2e496a; }
Класс JavaScript для управления параметрами:
class ShapeOverlays { constructor(elm) { this.elm = elm; // Родительские SVG элементы. this.path = elm.querySelectorAll('path'); // Path-элементы родителя. this.numPoints = 18; // Количество контрольных точек для Кривой Безье. this.duration = 600; // Продолжительность анимации одного элемента. this.delayPointsArray = []; // Массив контрольных точек для Кривой Безье. this.delayPointsMax = 300; // Максимальное значение задержки во всех контрольных точках. this.delayPerPath = 60; // Значение задержки path-элементов. this.timeStart = Date.now(); this.isOpened = false; } ... } const elmOverlay = document.querySelector('.shape-overlays'); const overlay = new ShapeOverlays(elmOverlay);
Более подробную информацию можно найти в HTML-файлах, которые предоставлены автором по ссылке выше. Пробуйте. Удачи!