Tạo hiệu ứng hoa đào rơi ngày Tết bằng HTML, CSS và JavaScript

Vào dịp Tết, một website có thêm chuyển động nhẹ nhàng sẽ tạo cảm xúc rất tốt cho người xem. Hiệu ứng hoa đào rơi là một lựa chọn đơn giản nhưng hiệu quả, giúp trang web mang không khí xuân mà vẫn đảm bảo hiệu năng. Bài viết này hướng dẫn cách tạo và tích hợp hiệu ứng hoa đào rơi bằng HTML, CSS và JavaScript thuần, không sử dụng thư viện ngoài.

Tạo hiệu ứng hoa đào rơi ngày Tết bằng HTML, CSS và JavaScript

Khi nào nên sử dụng hiệu ứng hoa đào rơi

Hiệu ứng hoa đào rơi phù hợp trong các trường hợp sau:

  • Trang chủ hoặc landing page chúc Tết
  • Blog, website cá nhân trong dịp đầu năm
  • Website doanh nghiệp muốn tạo điểm nhấn theo mùa

Không nên sử dụng hiệu ứng này quanh năm vì có thể gây mất tập trung cho người dùng và làm giảm tính chuyên nghiệp của giao diện.

Cấu trúc cơ bản của hiệu ứng

Hiệu ứng được xây dựng từ ba phần chính:

  • Một thẻ HTML làm container chứa các cánh hoa
  • CSS để tạo hình dáng và animation rơi
  • JavaScript để sinh cánh hoa ngẫu nhiên và tự động dọn dẹp

HTML cần thiết

Chỉ cần thêm một thẻ container vào website, tốt nhất đặt gần cuối trang hoặc trong footer:

<div id="petals-container"></div>

CSS tạo hình cánh hoa và chuyển động

Đoạn CSS dưới đây được tối ưu để không ảnh hưởng đến layout và thao tác người dùng:

#petals-container {
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 9999;
    overflow: hidden;
}

.petal {
    position: absolute;
    width: 8px;
    height: 8px;
    background: radial-gradient(circle at center, #ff6b9d, #ff1744);
    border-radius: 50% 0 50% 0;
    opacity: 0.7;
    animation: petal-fall linear infinite;
}

@keyframes petal-fall {
    from {
        transform: translateY(-10px) rotate(0deg);
    }
    to {
        transform: translateY(100vh) rotate(360deg);
    }
}

JavaScript tạo hoa đào rơi liên tục

Phần JavaScript chịu trách nhiệm sinh cánh hoa ngẫu nhiên, kiểm soát thời gian rơi và tự xóa phần tử sau khi animation kết thúc để tránh tốn bộ nhớ:

(function () {
    const container = document.getElementById('petals-container');
    if (!container) return;

    function createPetal() {
        const petal = document.createElement('div');
        petal.className = 'petal';

        const size = Math.random() * 6 + 6;
        const duration = Math.random() * 3 + 4;

        petal.style.left = Math.random() * 100 + '%';
        petal.style.width = petal.style.height = size + 'px';
        petal.style.animationDuration = duration + 's';
        petal.style.opacity = Math.random() * 0.4 + 0.4;

        container.appendChild(petal);

        setTimeout(() => petal.remove(), (duration + 1) * 1000);
    }

    setInterval(createPetal, 220);

    for (let i = 0; i < 12; i++) {
        setTimeout(createPetal, i * 120);
    }
})();

Cách tích hợp vào website và WordPress

Có thể tích hợp hiệu ứng theo các cách sau:

  • Đưa CSS vào file style.css của theme
  • Đưa JavaScript vào file riêng hoặc chèn ở footer
  • Thẻ HTML container đặt trong footer.php hoặc template chính

Nên bật hiệu ứng theo điều kiện thời gian (ví dụ chỉ trong dịp Tết) để đảm bảo trải nghiệm người dùng lâu dài.

Hiệu năng và trải nghiệm người dùng

Hiệu ứng được thiết kế với các tiêu chí:

  • Không chặn quá trình render
  • Không lắng nghe sự kiện scroll hoặc resize
  • Không thao tác layout liên tục
  • Tự động dọn dẹp DOM sau khi animation kết thúc

Với cách triển khai này, hiệu ứng hoạt động mượt trên cả desktop và mobile.

Kết luận

Hiệu ứng hoa đào rơi là một cách đơn giản để mang không khí Tết vào website mà không làm ảnh hưởng đến hiệu năng. Chỉ cần tích hợp đúng cách và sử dụng đúng thời điểm, hiệu ứng này sẽ giúp trang web trở nên sinh động và giàu cảm xúc hơn trong những ngày đầu năm.

Bình luận


  • Không có bình luận.

Init Toolbox

Nhấn Ctrl + \ trên máy tính, hoặc vuốt sang trái ở bất kỳ đâu trên mobile.

Đăng nhập





Đang tải...