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

Catalog

Flowers

In Stock

HK-031 Smooth Rods

Flowers

In Stock

HK-032 Smooth Rods

Flowers

In Stock

HK-033 Smooth Rods

Flowers

In Stock

HK-034 Smooth Rods

Flowers

In Stock

HK-035 Smooth Rods

Flowers

In Stock

HK-036 Smooth Rods

Flowers

In Stock

HK-037 Smooth Rods

Flowers

In Stock

HK-038 Smooth Rods

Flowers

In Stock

HK-039 Smooth Rods

Flowers

In Stock

NK-061 Patterned Rods

Flowers

In Stock

NK-062 Patterned Rods

Flowers

In Stock

NK-063 Patterned Rods

Flowers

In Stock

NK-064 Patterned Rods

Flowers

In Stock

NK-065 Patterned Rods

Flowers

In Stock

NK-066 Patterned Rods

Flowers

In Stock

NK-067 Patterned Rods

Flowers

In Stock

NK-068 Patterned Rods

Flowers

In Stock

NK-069 Patterned Rods

Flowers

In Stock

FK-021 Frieze Rods

Flowers

In Stock

FK-022 Frieze Rods

Flowers

In Stock

FK-023 Frieze Rods

Flowers

In Stock

FK-024 Frieze Rods

Flowers

In Stock

FK-025 Frieze Rods

Flowers

In Stock

FK-027 Frieze Rods

Flowers

In Stock

FK-028 Frieze Rods

Flowers

In Stock

FK-029 Frieze Rods

Flowers

In Stock

FK-030 Frieze Rods

Flowers

In Stock

ML-041 Rail Moulding

Flowers

In Stock

ML-042 Rail Moulding

Flowers

In Stock

ML-043 Rail Moulding

Flowers

In Stock

ML-044 Rail Moulding

Flowers

In Stock

ML-045 Rail Moulding

Flowers

In Stock

ML-046 Rail Moulding

Flowers

In Stock

ML-047 Rail Moulding

Flowers

In Stock

ML-048 Rail Moulding

Flowers

In Stock

ML-049 Rail Moulding

Flowers

In Stock

3DP-002 3D Panel

Flowers

In Stock

3DP-003 3D Panel

Flowers

In Stock

3DP-004 3D Panel

Flowers

In Stock

3DP-005 3D Panel

Flowers

In Stock

3DP-006 3D Panel

Flowers

In Stock

3DP-007 3D Panel

Flowers

In Stock

3DP-008 3D Panel

Flowers

In Stock

3DP-009 3D Panel

Flowers

In Stock

3DP-010 3D Panel

Flowers

In Stock

RZ-071 Domes

Flowers

In Stock

RZ-072 Domes

Flowers

In Stock

RZ-073 Domes

Flowers

In Stock

RZ-074 Domes

Flowers

In Stock

RZ-075 Domes

Flowers

In Stock

RZ-076 Domes

Flowers

In Stock

RZ-077 Domes

Flowers

In Stock

RZ-078 Domes

Flowers

In Stock

RZ-079 Domes

Flowers

In Stock

KB-51 Corners

Flowers

In Stock

KB-52 Corners

Flowers

In Stock

KB-53 Corners

Flowers

In Stock

KB-54 Corners

Flowers

In Stock

KB-55 Corners

Flowers

In Stock

KB-56 Corners

Flowers

In Stock

KB-57 Corners

Flowers

In Stock

KB-58 Corners

Flowers

In Stock

KB-59 Corners

Flowers

In Stock

DCH-131 Decorative Frames and Transitions

Flowers

In Stock

DCH-132 Decorative Frames and Transitions

Flowers

In Stock

DCH-133 Decorative Frames and Transitions

Flowers

In Stock

DCH-134 Decorative Frames and Transitions

Flowers

In Stock

DCH-135 Decorative Frames and Transitions

Flowers

In Stock

DCH-136 Decorative Frames and Transitions

Flowers

In Stock

DCH-137 Decorative Frames and Transitions

Flowers

In Stock

DCH-138 Decorative Frames and Transitions

Flowers

In Stock

DCH-139 Decorative Frames and Transitions

Flowers

In Stock

Hİ-122 Ventilation Grilles

Flowers

In Stock

Hİ-123 Ventilation Grilles

Flowers

In Stock

Hİ-124 Ventilation Grilles

Flowers

In Stock

Hİ-125 Ventilation Grilles

Flowers

In Stock

Hİ-126 Ventilation Grilles

Flowers

In Stock

R-081 Frame

Flowers

In Stock

R-082 Frame

Flowers

In Stock

R-083 Frame

Flowers

In Stock

R-084 Frame

Flowers

In Stock

R-085 Frame

Flowers

In Stock

R-086 Frame

Flowers

In Stock

R-087 Frame

Flowers

In Stock

R-088 Frame

Flowers

In Stock

R-089 Frame

Flowers

In Stock

PT-101 Pilaster

Flowers

In Stock

PT-102 Pilaster

Flowers

In Stock

PT-103 Pilaster

Flowers

In Stock

PT-104 Pilaster

Flowers

In Stock

PT-105 Pilaster

Flowers

In Stock

PT-106 Pilaster

Flowers

In Stock

PT-107 Pilaster

Flowers

In Stock

PT-108 Pilaster

Flowers

In Stock

PT-109 Pilaster

Flowers

In Stock

STN-091 Column

Flowers

In Stock

STN-092 Column

Flowers

In Stock

STN-093 Column

Flowers

In Stock

STN-094 Column

Flowers

In Stock

STN-095 Column

Flowers

In Stock

STN-096 Column

Flowers

In Stock

STN-097 Column

Flowers

In Stock

STN-098 Column

Flowers

In Stock

STN-099 Column

Flowers

In Stock

NH-151 Sculpture

Flowers

In Stock

NH-152 Sculpture

Flowers

In Stock

NH-153 Sculpture

Flowers

In Stock

NH-154 Sculpture

Flowers

In Stock

NH-155 Sculpture

Flowers

In Stock

KK-011 Decors

Flowers

In Stock

KK-012 Decors

Flowers

In Stock

KK-013 Decors

Flowers

In Stock

KK-014 Decors

Flowers

In Stock

KK-015 Decors

Flowers

In Stock

KK-016 Decors

Flowers

In Stock

KK-017 Decors

Flowers

In Stock

KK-018 Decors

Flowers

In Stock

KK-019 Decors

Flowers

In Stock

DSH-300 Chimney

Flowers

In Stock

DSH-301 Chimney

Flowers

In Stock

DSH-302 Chimney

Flowers

In Stock

DSH-303 Chimney

Flowers

In Stock

DSH-304 Chimney

© Molding. All rights reserved