0
0
Lập trình
Flame Kris
Flame Krisbacodekiller

Tạo hiệu ứng pháo bông bằng CSS và JS khi click chuột

Đăng vào 1 tháng trước

• 5 phút đọc

Chủ đề:

KungFuTech

Tạo hiệu ứng pháo bông (Spark Effect) bằng CSS và JS

Giới thiệu

Trong bài viết này, chúng ta sẽ cùng nhau khám phá cách tạo hiệu ứng pháo bông khi click chuột vào bất kỳ vị trí nào trên trang web bằng cách sử dụng HTML, CSS và JavaScript. Hiệu ứng này không chỉ làm cho giao diện người dùng trở nên sinh động mà còn giúp bạn cải thiện kỹ năng lập trình frontend của mình. Hãy bắt đầu nào!

Bước 1: Tạo cấu trúc HTML

Đầu tiên, chúng ta cần tạo một tệp HTML cơ bản. Nội dung HTML sẽ rất đơn giản, chỉ cần một tiêu đề để hiển thị trên trang.

HTML

html Copy
<h2>Click bất kỳ vị trí nào để thấy hiệu ứng pháo bông</h2>

Bước 2: Thêm CSS cho hiệu ứng

Tiếp theo, chúng ta sẽ thêm một số kiểu CSS để tạo hiệu ứng cho các pháo bông. Dưới đây là mã CSS mà bạn cần sử dụng:

CSS

css Copy
body {
    height: calc(100vh - 16px);
    width: calc(100vw - 23px);
    background: rgb(63, 63, 63);
}

h2 {
    opacity: 0.25;
    color: white;
    text-align: center;
    width: 100%;
    display: block;
    font-size: 22px;
    font-weight: lighter;
    font-family: "Source Code Pro", Inconsolata, Menlo, monospace;
}

ul {
    position: absolute;
    width: 22px;
    height: 22px;
    list-style: none;
    margin: -6px 0 0 -32px;
}

ul li {
    padding: 0px;
    width: 0px;
    height: 0px;
    position: absolute;
    left: auto;
    right: auto;
}

ul li:first-child {
    left: 50%;
    top: -22px;
    width: 1px;
    height: 0px;
    rotate: 0deg;
    border-left: 1px solid beige;
    animation: vert .25s linear;
}

ul li:nth-child(2) {
    left: 50%;
    bottom: -22px;
    width: 1px;
    height: 0px;
    rotate: 0deg;
    border-left: 1px solid beige;
    animation: vert .25s linear;
}

ul li:nth-child(3) {
    left: -6px;
    top: 11px;
    rotate: 0deg;
    width: 0px;
    height: 1px;
    border-bottom: 1px solid beige;
    animation: horiz .25s linear;
}

ul li:nth-child(4) {
    right: -6px;
    rotate: 0deg;
    top: 11px;
    width: 0px;
    height: 1px;
    border-bottom: 1px solid beige;
    animation: horiz .25s linear;
}

ul li:nth-child(5) {
    left: 0px;
    top: -11px;
    rotate: 45deg;
    width: 0px;
    height: 1px;
    border-bottom: 1px solid beige;
    animation: horiz .25s linear;
}

ul li:nth-child(6) {
    right: 0px;
    top: -11px;
    rotate: -45deg;
    width: 0px;
    height: 1px;
    border-bottom: 1px solid beige;
    animation: horiz .25s linear;
}

ul li:nth-child(7) {
    left: 0px;
    bottom: -11px;
    rotate: -45deg;
    width: 0px;
    height: 1px;
    border-bottom: 1px solid beige;
    animation: horiz .25s linear;
}

ul li:nth-child(8) {
    right: 0px;
    bottom: -11px;
    rotate: 45deg;
    width: 0px;
    height: 1px;
    border-bottom: 1px solid beige;
    animation: horiz .25s linear;
}

@keyframes vert {
    from {
        height: 22px;
    }
    to {
        height: 0px;
    }
}

@keyframes horiz {
    from {
        width: 22px;
    }
    to {
        width: 0px;
    }
}

Bước 3: Thêm JavaScript để kích hoạt hiệu ứng

Cuối cùng, chúng ta sẽ sử dụng JavaScript để lắng nghe sự kiện click và tạo ra hiệu ứng pháo bông. Dưới đây là mã JavaScript mà bạn cần:

JavaScript

javascript Copy
document.body.addEventListener('click', function (event) {
    const ul = document.createElement('ul');
    ul.style.left = event.pageX + 'px'; ul.style.top = event.pageY + 'px';
    for (let i = 1; i <= 8; i++) { const li = document.createElement('li'); ul.appendChild(li); }
    document.body.appendChild(ul);
    setTimeout(() => { ul.remove(); }, 250);
});

Mô tả cách hoạt động

Khi bạn click vào bất kỳ vị trí nào trên trang, đoạn mã JavaScript sẽ tạo ra một danh sách <ul> với các phần tử <li> bên trong. Mỗi phần tử này sẽ thực hiện một hoạt động animation để tạo ra hiệu ứng pháo bông.

Thực hành và mở rộng

Bạn có thể tùy chỉnh thêm các hiệu ứng khác nhau cho pháo bông bằng cách thay đổi các thuộc tính CSS hoặc các tham số hoạt hình trong JavaScript. Hãy thử nghiệm với các màu sắc, kích thước và tốc độ khác nhau để tạo ra hiệu ứng độc đáo hơn.

Các lưu ý quan trọng

  • Đảm bảo rằng bạn đã thêm đúng các thẻ HTML và mã CSS, JavaScript vào tệp của mình.
  • Thử nghiệm trên nhiều trình duyệt khác nhau để đảm bảo hiệu ứng hoạt động như mong đợi.

Các lỗi thường gặp

  • Không thấy hiệu ứng khi click: Kiểm tra lại mã JavaScript và đảm bảo rằng nó được chạy sau khi DOM đã tải xong.
  • Hiệu ứng không đẹp: Kiểm tra lại CSS và đảm bảo rằng bạn đã thiết lập đúng các thuộc tính như màu sắc và kích thước.

Kết luận

Bây giờ bạn đã biết cách tạo hiệu ứng pháo bông đơn giản sử dụng CSS và JavaScript. Hãy thử nghiệm với mã nguồn này và sáng tạo thêm những hiệu ứng thú vị khác cho trang web của bạn. Chúc bạn thành công!

Liên kết tài nguyên

Câu hỏi thường gặp (FAQ)

1. Tôi có thể tùy chỉnh hiệu ứng này không?
Có, bạn hoàn toàn có thể thay đổi màu sắc, kích thước và tốc độ của hiệu ứng.

2. Hiệu ứng này có hoạt động trên tất cả các trình duyệt không?
Hiệu ứng này nên hoạt động trên hầu hết các trình duyệt hiện đại.

3. Có cách nào để tối ưu hiệu suất không?
Sử dụng các kỹ thuật tối ưu hóa như giảm kích thước hình ảnh và tải mã JavaScript không đồng bộ để cải thiện hiệu suất.

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào