Một nút "Lên đầu trang" (Back to Top) mượt mà không chỉ nâng cao trải nghiệm người dùng mà còn giúp giữ chân độc giả trên blog của bạn lâu hơn. Tuy nhiên, nhiều mẫu chia sẻ trên mạng hiện nay vẫn sử dụng jQuery hoặc dùng các thuộc tính CSS cũ kỹ (như dùng border để tạo hình tam giác), làm tăng dung lượng tải trang và kéo tụt điểm số Google PageSpeed Insights.
Bài viết này sẽ hướng dẫn bạn cách tạo nút Back to Top sử dụng hoàn toàn Vanilla JavaScript siêu nhẹ kết hợp biểu tượng SVG sắc nét, đi kèm 5 phong cách thiết kế hiện đại để bạn thoải mái lựa chọn cho giao diện của mình.
Các Tính Năng Nổi Bật
Không sử dụng jQuery: Viết bằng Vanilla JavaScript nguyên bản, giúp mã thực thi cực nhanh và không phải tải thêm thư viện bên ngoài.
Sử dụng SVG thay cho Font Icon: Biểu tượng mũi tên dùng thẻ
<svg>trực tiếp, loại bỏ việc phải load font chữ nặng nề, đảm bảo độ sắc nét tuyệt đối trên mọi màn hình (kể cả màn hình Retina).Hiệu ứng mượt mà (Smooth Scroll): Chuyển động cuộn trang mượt mà lên đầu trang, nút có hiệu ứng mờ dần khi xuất hiện và nảy nhẹ khi di chuột.
Dễ dàng tùy biến: Cấu trúc CSS được phân tách rõ ràng thành phần "Khung cốt lõi" và phần "Giao diện", giúp bạn thay đổi kiểu dáng chỉ trong vài giây.
Hướng Dẫn Chèn Vào Blogspot
Để cài đặt, bạn đăng nhập vào trang quản trị Blogger, vào mục Chủ đề > Chỉnh sửa HTML và làm lần lượt theo 3 bước sau:
Bước 1: Chèn mã HTML và JavaScript
Tìm thẻ đóng </body> (nằm ở cuối cùng của đoạn mã template) và dán đoạn code sau vào ngay phía trên nó:
<!-- Nút Back to Top --><button id="back-to-top" aria-label="Lên đầu trang"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="18 15 12 9 6 15"></polyline></svg></button><!-- Script Vanilla JS siêu nhẹ --><script>document.addEventListener("DOMContentLoaded", function() {const btt = document.getElementById("back-to-top");window.addEventListener("scroll", function() {if (window.scrollY > 300) {btt.classList.add("show");} else {btt.classList.remove("show");}});btt.addEventListener("click", function() {window.scrollTo({ top: 0, behavior: "smooth" });});});</script>
Bước 2: Chèn CSS khung định vị cốt lõi Tìm thẻ
]]></b:skin> và dán đoạn CSS sau vào ngay phía trên nó. Đoạn này giúp xử lý vị trí hiển thị và hiệu ứng ẩn/hiện của nút:/* Khung định vị cơ bản Back To Top */#back-to-top {position: fixed;bottom: 30px;right: 30px;z-index: 9999;opacity: 0;visibility: hidden;cursor: pointer;border: none;outline: none;display: flex;align-items: center;justify-content: center;transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);transform: translateY(20px);}#back-to-top.show {opacity: 1;visibility: visible;transform: translateY(0);}#back-to-top svg {width: 22px;height: 22px;transition: transform 0.3s ease;}#back-to-top:hover svg {transform: translateY(-3px);}
Bước 3: Chọn và chèn 1 trong 5 mẫu thiết kế Dán tiếp MỘT trong năm mẫu CSS dưới đây ngay bên dưới đoạn CSS ở Bước 2, tùy theo sở thích và phong cách giao diện blog của bạn.
Mẫu 1: Kính mờ (Glassmorphism)
Phong cách tinh tế, có độ trong suốt và viền mờ ảo.
#back-to-top {
width: 48px;
height: 48px;
border-radius: 50%;
background: rgba(255, 255, 255, 0.2);
backdrop-filter: blur(10px);
-webkit-backdrop-filter: blur(10px);
border: 1px solid rgba(255, 255, 255, 0.4);
color: #334155;
box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
}
#back-to-top:hover {
background: rgba(255, 255, 255, 0.4);
box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15);
}
Mẫu 2: Nổi khối 3D (Neumorphism)
Phong cách dập nổi tiệp màu với nền trắng/xám sáng.
#back-to-top {
width: 50px;
height: 50px;
border-radius: 50%;
background: #e0e5ec;
color: #64748b;
box-shadow: 7px 7px 14px rgba(163, 177, 198, 0.6),
-7px -7px 14px rgba(255, 255, 255, 0.8);
}
#back-to-top:hover {
color: #2563eb;
box-shadow: inset 5px 5px 10px rgba(163, 177, 198, 0.5),
inset -5px -5px 10px rgba(255, 255, 255, 0.8);
}
Mẫu 3: Dải màu phát sáng (Gradient Glow)
Màu sắc rực rỡ, thu hút sự chú ý.
#back-to-top {width: 48px; height: 48px; border-radius: 50%; background: linear-gradient(135deg, #6366f1 0%, #a855f7 100%); color: #ffffff; box-shadow: 0 4px 15px rgba(168, 85, 247, 0.4); } #back-to-top:hover { transform: translateY(-3px) scale(1.05); box-shadow: 0 8px 25px rgba(168, 85, 247, 0.6); }
Mẫu 4: Tech & Cyber (Cyber/Bordered)
Vuông vắn, góc cạnh, thích hợp cho các blog thiên về code hoặc công nghệ.
#back-to-top {
width: 44px;
height: 44px;
border-radius: 8px;
background: #0f172a;
color: #0ea5e9;
border: 2px solid #0ea5e9;
}
#back-to-top:hover {
background: #0ea5e9;
color: #ffffff;
box-shadow: 0 0 15px rgba(14, 165, 233, 0.5);
}
Mẫu 5: Cổ điển tinh giản (Classic Minimal)
Giao diện quen thuộc, trực quan và dễ nhìn.
#back-to-top {
width: 52px;
height: 52px;
border-radius: 50%;
background: #2563eb;
color: #ffffff;
box-shadow: 0 6px 12px rgba(37, 99, 235, 0.3),
0 1px 3px rgba(37, 99, 235, 0.2);
}
#back-to-top:hover {
background: #1d4ed8;
box-shadow: 0 10px 20px rgba(37, 99, 235, 0.4);
}

Được đây đã áp dụng cho blog mình
Trả lờiXóaHay đây. Nghiên cứu tiếp cái này mới được!
Trả lờiXóahihi , bài này hay quá , và mình đã coppy sang bên blog của mình , xin lỗi vì quên đã ko để nguồn bài đăng
Trả lờiXóa