document.addEventListener("DOMContentLoaded", function () { const canvas = document.createElement("canvas"); canvas.style.position = "fixed"; canvas.style.top = "0"; canvas.style.left = "0"; canvas.style.pointerEvents = "none"; canvas.style.zIndex = "9999"; document.body.appendChild(canvas); const ctx = canvas.getContext("2d"); let width = window.innerWidth + 100; let height = window.innerHeight; canvas.width = width; canvas.height = height; const flakes = []; // Загружаем изображения для снежинок const snowflakeImages = ["/sneg.png", "/sneg2.png"]; const snowflakes = []; let img1 = new Image(); img1.src = snowflakeImages[0]; let img2 = new Image(); img2.src = snowflakeImages[1]; // Создаем снежинку с отклонением по горизонтали function createFlake() { const randomImage = Math.random() > 0.5 ? img1 : img2; // Выбираем случайное изображение return { x: Math.random() * width, y: Math.random() * height * 0.5, // Появление снежинок в верхней половине экрана image: randomImage, // Присваиваем изображение width: 13 + Math.random() * 5, // Ширина изображения снежинки height: 13 + Math.random() * 5, // Высота изображения снежинки speed: Math.random() * 5 + 0.5, // Скорость падения direction: (Math.random() - 0.5) * 2, // Направление горизонтального отклонения (-1 до 1) drift: Math.random() * 0.5 - 0.1, // Медленное горизонтальное отклонение со временем }; } // Рисуем снежинки function drawFlakes() { ctx.clearRect(0, 0, width, height); // Очистить экран // Рисуем падающие снежинки flakes.forEach((flake) => { ctx.drawImage(flake.image, flake.x, flake.y, flake.width, flake.height); }); } // Двигаем снежинки с эффектом отскока от краев function moveFlakes() { flakes.forEach((flake, index) => { flake.y += flake.speed; // Падение вниз flake.x += flake.direction + flake.drift; // Горизонтальное отклонение // Отскок при достижении левого или правого края экрана if (flake.x < 0 || flake.x > width) { flake.direction = -flake.direction; // Меняем направление на противоположное // Плавное возвращение к центру экрана flake.x = Math.min(Math.max(flake.x, 0), width); } // Если снежинка выходит за нижнюю границу экрана, перемещаем её обратно в верхнюю часть if (flake.y > height) { flake.y = -flake.height; // Переходит в верхнюю часть flake.x = Math.random() * width; // Новая случайная позиция по горизонтали } }); // Добавляем новые снежинки, чтобы поддерживать их количество while (flakes.length < 100) { // Поддерживаем количество снежинок flakes.push(createFlake()); } } // Анимация function loop() { drawFlakes(); moveFlakes(); requestAnimationFrame(loop); } // Инициализация снежинок for (let i = 0; i < 100; i++) { flakes.push(createFlake()); } // Адаптация к изменению размера окна window.addEventListener("resize", () => { width = window.innerWidth + 100; height = window.innerHeight; canvas.width = width; canvas.height = height; }); loop(); });
Flowers

Статьи

ЭЛЕМЕНТЫ ДЕКОРАТИВНОЙ ЛЕПНИНЫ

 

Лепные украшения были символом красоты в большинстве старых зданий. Их можно увидеть в потолочных углах комнат, вдоль стен и вокруг дверных косяков. Молдинги являются визитной карточкой любой квартиры и придают дому элегантный вид. Единственное требование состоит в том, чтобы у вас была достаточная высота потолка, чтобы дать волю своему творчеству.

Более
Flowers

МОЛДИНГИ В СТИЛЕ АРТ-ДЕКО


Молдинги играют важную роль в стиле Ар Деко, помогая создать его характерные черты и атмосферу. В этом стиле молдинги часто используются для подчеркивания геометрических форм, добавления декоративных деталей и придания интерьеру роскошного и элегантного вида.

Более
Flowers

МОЛДИНГ ВО ФРАНЦУЗСКОМ СТИЛЕ

 

Молдинги и декоры, используемые в зависимости от комнат домов, привносят французскую роскошь в каждый уголок дома и смотрятся эффектно и красиво. Хотя существует множество различных французских стилей, преобладают кантри и современные парижские стили. Каждый дом во французском стиле имеет свои особенности, но многие из нас хотят добавить это качество своему стильному дому. мы зашли так далеко, что превратили весь наш дом во французский дом.

Более
Flowers

НЕОКЛАССИЧЕСКИЕ ДЕКОРАТИВНЫЕ МОЛДИНГИ
 

Декоративные молдинги в неоклассическом стиле обладают изысканностью, элегантностью и роскошью. Они являются важной частью архитектурного оформления в неоклассическом дизайне терьера и добавляют утонченность и характер помещению.

Более
Flowers

КАК УКРАСИТЬ СТЕНЫ ПРИ ПОМОЩИ МОЛДИНГОВ?
 

Молдинг для стен представляет собой многофункциональный элемент декора, который поможет служат главным акцентом комнаты. Отделка стен молдингами подойдет для облицовки яркими вставками, зеркальными элементами, картинами, фотографиями, панно и постерами.  

Более
Flowers
© Molding. Все права защищены