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","/s1.png", "/s2.png", "/s3.png", "/s4.png"];
const snowflakes = [];
let img1 = new Image();
img1.src = snowflakeImages[0];
let img2 = new Image();
img2.src = snowflakeImages[1];
let img3 = new Image();
img3.src = snowflakeImages[2];
let img4 = new Image();
img4.src = snowflakeImages[3];
let img5 = new Image();
img5.src = snowflakeImages[4];
let img6 = new Image();
img6.src = snowflakeImages[5];
// Создаем снежинку с отклонением по горизонтали
function createFlake() {
const images = [img1, img2, img3, img4, img5, img6];
const randomImage = images[Math.floor(Math.random() * images.length)];
// Выбираем случайное изображение
return {
x: Math.random() * width,
y: Math.random() * height * 0.5, // Появление снежинок в верхней половине экрана
image: randomImage, // Присваиваем изображение
width: 33 + Math.random() * 13, // Ширина изображения снежинки
height: 33 + Math.random() * 13, // Высота изображения снежинки
speed: Math.random() * 2 + 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 < 50; i++) {
flakes.push(createFlake());
}
// Адаптация к изменению размера окна
window.addEventListener("resize", () => {
width = window.innerWidth + 100;
height = window.innerHeight;
canvas.width = width;
canvas.height = height;
});
loop();
});
1999
Filmin adı |
Kabus köpək: Samuray yolu |
Orijinal adı |
Ghost Dog: The Way of the Samurai |
Videokeyfiyyət |
1080p |
Dil |
Azərbaycan dilində dublyaj |
Filmin adı |
Janna Dark |
Orijinal adı |
Joan of Arc |
Videokeyfiyyət |
1080p |
Dil |
Azərbaycan dilində dublyaj |
Filmin adı |
İkiqat təhlükə |
Orijinal adı |
Double Jeopardy |
Videokeyfiyyət |
1080p |
Dil |
Azərbaycan dilində dublyaj |
Filmin adı |
Bəsdir, ağlama! |
Orijinal adı |
Bəsdir, ağlama! |
Videokeyfiyyət |
1080p |
Dil |
Azərbaycan dilində |
Filmin adı |
Hər bazar günü |
Orijinal adı |
Any Given Sunday |
Videokeyfiyyət |
1080p |
Dil |
Azərbaycan dilində dublyaj |
Filmin adı |
Günbatandan gündoğana 2: Texasın qanlı pulları |
Orijinal adı |
From Dusk Till Dawn 2: Texas Blood Money |
Videokeyfiyyət |
1080p |
Dil |
Azərbaycan dilində dublyaj |
Filmin adı |
Günbatandan gündoğana 3: Cəlladın qızı |
Orijinal adı |
From Dusk Till Dawn 3: The Hangman's Daughter |
Videokeyfiyyət |
1080p |
Dil |
Azərbaycan dilində dublyaj |
Filmin adı |
13-cü döyüşçü |
Orijinal adı |
The 13th Warrior |
Videokeyfiyyət |
1080p |
Dil |
Azərbaycan dilində dublyaj |
Filmin adı |
Baza |
Orijinal adı |
The Base |
Videokeyfiyyət |
1080p |
Dil |
Azərbaycan dilində dublyaj |
Filmin adı |
Füsunkar gözəl |
Orijinal adı |
Drop Dead Gorgeous |
Videokeyfiyyət |
1080p |
Dil |
Azərbaycan dilində dublyaj |
Filmin adı |
Əbədi olaraq mənimsən |
Orijinal adı |
Forever Mine |
Videokeyfiyyət |
1080p |
Dil |
Azərbaycan dilində dublyaj |
Filmin adı |
Əjdahaların savaşı |
Orijinal adı |
Bridge of Dragons |
Videokeyfiyyət |
1080p |
Dil |
Azərbaycan dilində dublyaj |
Filmin adı |
Döyüş klubu |
Orijinal adı |
Fight Club |
Videokeyfiyyət |
1080p |
Dil |
Azərbaycan dilində dublyaj |
Filmin adı |
Doqquzuncu qapı |
Orijinal adı |
The Ninth Gate |
Videokeyfiyyət |
1080p |
Dil |
Azərbaycan dilində dublyaj |
Filmin adı |
Dərin mavi dəniz |
Orijinal adı |
Deep Blue Sea |
Videokeyfiyyət |
1080p |
Dil |
Azərbaycan dilində dublyaj |
Filmin adı |
Daş mühafizəçiləri |
Orijinal adı |
Babel |
Videokeyfiyyət |
1080p |
Dil |
Azərbaycan dilində dublyaj |
Filmin adı |
Çatdırılma |
Orijinal adı |
The Delivery |
Videokeyfiyyət |
1080p |
Dil |
Azərbaycan dilində dublyaj |
Filmin adı |
Cadugər 3 |
Orijinal adı |
Warlock III: The End of Innocence |
Videokeyfiyyət |
1080p |
Dil |
Azərbaycan dilində dublyaj |
Filmin adı |
Ehkam |
Orijinal adı |
Dogma |
Videokeyfiyyət |
1080p |
Dil |
Azərbaycan dilində dublyaj |
Filmin adı |
Yaşıl mil |
Orijinal adı |
The Green Mile |
Videokeyfiyyət |
1080p |
Dil |
Azərbaycan dilində dublyaj |
daha çox