
[Share Code] Kéo thả Phần tử bằng Javascript
Trong hướng dẫn này, chúng ta sẽ tạo một menu điều hướng có thể kéo thả bằng HTML, CSS và JavaScript. Menu này cho phép người dùng sắp xếp lại các mục điều hướng chỉ bằng cách kéo và thả. Thiết kế bao gồm hiệu ứng chuyển màu thẩm mỹ, hoạt ảnh mượt mà và hiệu ứng glassmorphism, giúp giao diện trở nên bắt mắt. Chỉ với vài dòng JavaScript, chúng ta có thể kích hoạt tính năng kéo-thả một cách trơn tru mà không cần sử dụng thư viện bên ngoài. Hãy cùng bắt tay vào xây dựng menu điều hướng phong cách và thân thiện với người dùng này!
Cấu trúc HTML
Cấu trúc HTML bao gồm một menu điều hướng bên trong một thẻ <div>
.
- Thẻ
<div class="container">
là phần bao bọc chính, chứa một danh sách không có thứ tự (<ul>
) với sáu mục (<li>
). - Mỗi mục
<li>
đại diện cho một liên kết điều hướng như Home, Blog, Services, About, Contact, Help. - Bên trong mỗi
<li>
có một biểu tượng từ Ionicons và nhãn văn bản, giúp menu trở nên trực quan hơn. - Thuộc tính
draggable="true"
được thêm vào mỗi<li>
, cho phép người dùng kéo và sắp xếp lại các mục.
Tính năng kéo-thả này được hỗ trợ sẵn trong HTML mà không cần thư viện JavaScript bổ sung.
- Biểu tượng Ionicons được nhập vào bằng thẻ
<script>
từ CDN của Ionicons. - Các biểu tượng này được tải động và có thể tùy chỉnh qua class name.
- Mỗi phần tử
<ion-icon>
được gán một tên biểu tượng tương ứng với từng mục menu.
CSS – Tạo giao diện hiện đại
Tệp CSS giúp cải thiện giao diện menu bằng các hiệu ứng hiện đại như gradient, bóng đổ và hoạt ảnh mượt mà.
- Font chữ Poppins được nhập vào từ Google Fonts bằng
@import
, tạo phong cách chuyên nghiệp. - Bộ chọn toàn cục
*
đặtmargin: 0; padding: 0; box-sizing: border-box;
để đảm bảo bố cục gọn gàng. - Phần html, body được đặt
display: grid; place-items: center;
giúp menu luôn căn giữa màn hình. - Nền trang có hiệu ứng chuyển màu chéo
linear-gradient(135deg)
, pha trộn các sắc tím tạo hiệu ứng đẹp mắt. - .container áp dụng glassmorphism bằng
backdrop-filter: blur(10px);
giúp giao diện trông hiện đại hơn. - Danh sách
<ul>
được loại bỏ padding và margin mặc định để đảm bảo bố cục gọn gàng. - Mỗi mục
<li>
có thiết kế bo tròn, nền chuyển màu mượt mà, chữ trắng để đảm bảo độ tương phản cao. - Biểu tượng
.icon
bên trong<li>
cófont-size: 1.2rem;
và khoảng cách hợp lý để căn chỉnh tốt hơn. - Hiệu ứng hover: Khi di chuột vào mục menu (
li:hover
), nó sẽ phóng to nhẹ và đổ bóng để tạo cảm giác tương tác. - Lớp
.dragging
giúp giảm độ mờ (opacity
) và thay đổi đường viền thành nét đứt màu trắng khi kéo thả. - Lớp
.drop-target
làm nổi bật vị trí có thể thả bằng viền nét đứt màu trắng. - Hoạt ảnh mượt mà được tạo bằng
transition: transform 0.2s, box-shadow 0.2s;
khi người dùng tương tác với menu.
Nhờ CSS, menu kéo-thả trở nên bắt mắt, tương tác tốt và hiện đại.
JavaScript – Kích hoạt tính năng kéo-thả
Mã JavaScript giúp menu hoạt động bằng cách xử lý các sự kiện kéo-thả trên các phần tử <li>
.
- Đầu tiên, biến
draggedItem
được đặt lànull
để lưu phần tử hiện đang được kéo. - Sự kiện
dragstart
: Khi một mục được kéo, nó được gán vàodraggedItem
và thêm class.dragging
để thay đổi giao diện. - Sự kiện
dragover
: Ngăn chặn hành vi mặc định để cho phép thả, đồng thời thêm class.drop-target
để làm nổi bật vị trí có thể thả. - Sự kiện
dragleave
: Nếu mục bị kéo ra khỏi vùng thả, lớp.drop-target
sẽ bị xóa. - Sự kiện
drop
: Khi thả mục kéo vào danh sách, script sẽ chèn nó vào vị trí trước hoặc sau mục hiện có, tùy thuộc vào vị trí của nó. - Sự kiện
dragend
: Xóa class.dragging
và bất kỳ highlight.drop-target
nào còn sót lại.
Nhờ đoạn JavaScript ngắn gọn này, chúng ta có một hệ thống kéo-thả trực quan, mượt mà mà không cần thư viện bên ngoài.
Tóm lại
Hướng dẫn này giúp bạn xây dựng một menu kéo-thả hiện đại, bắt mắt với HTML, CSS và JavaScript thuần. Thiết kế dựa trên glassmorphism, hiệu ứng gradient, hoạt ảnh mượt mà, và tính năng kéo-thả trực quan mà không cần dùng thư viện bên ngoài.
Mạnh Đức
Có cao nhân từng nói rằng: "Kiến thức trên thế giới này đầy rẫy trên internet. Tôi chỉ là người lao công cần mẫn đem nó tới cho người cần mà thôi !"
Danh mục tài liệu
-
Chia sẻ Code
-
Digital Marketing
-
Lập trình
-
[Chia sẻ] Tài liệu Python từ cơ bản đến nâng cao
-
[Chia sẻ] Tài liệu ReactJs FULL
-
[Chia sẻ] Tài liệu PHP từ Cơ bản tới Nâng cao
-
[Chia sẻ] Tài liệu Javascript từ Cơ bản đến Nâng cao
-
Chia sẻ Tài liệu Giáo trình Lập trình Cơ bản
-
[Chia sẻ] Giáo trình lập trình Game từ A-Z
-
Chia sẻ Tài liệu học Laravel FULL
-
[Chia sẻ] Tài liệu .NET từ Cơ bản đến Nâng Cao
-
[Chia sẻ] Tài liệu NodeJS từ cơ bản tới Nâng cao
-
Chia sẻ Tài liệu học Pascal từ cơ bản đến nâng cao
-
[Chia sẻ] Tài liệu học CSS miễn phí FULL
-
[Chia sẻ] Tài liệu học HTML từ Cơ bản tới Nâng cao
-
[Chia sẻ Tài liệu] Bài tập C++ FULL từ A-Z
-
Tài liệu đề thi học sinh giỏi - Olympic Tin học các năm
-
[Tài liệu] Giáo trình C++ từ Cơ bản đến Nâng cao
-
[Chia sẻ] Trọn bộ Tài liệu Lý thuyết C++
-
[Chia sẻ] Trọn bộ Tài liệu Thuật toán Cơ bản C++
-
[Chia sẻ] Trọn bộ Tài liệu Thực hành C++
-
Chia sẻ FULL bộ tài liệu học C++ đầy đủ nhất
-
-
Quản trị mạng
-
Chia sẻ Giáo trình học VPS từ cơ bản tới nâng cao
-
[Chia sẻ] Tài liệu học Cpanel FULL
-
[Chia sẻ] Bộ tài liệu học Cloud Server FULL
-
[Chia sẻ FULL] Tài liệu học WHM
-
[Chia sẻ] Tài liệu Quản trị hệ thống Server FULL
-
[PDF] Chia sẻ Tài liệu Thiết bị mạng CISCO
-
[PDF] Chia sẻ Tài liệu triển khai hệ thống Mail Online
-
[PDF] Chia sẻ Tài liệu Thiết kế, xây dựng mạng LAN
-
[PDF] Tài liệu Quản trị mạng Windows Server Full
-
[PDF] Tài liệu quản trị CSDL ACCESS Full
-
[PDF] Chia sẻ Tài liệu IPv6 Network Programming
-
[PDF] Tài liệu Bảo trì hệ thống mạng FULL
-
[PDF] Tài liệu học Linux LPI1 & LPI2 FULL
-
[PDF] Chia sẻ Tài liệu An ninh mạng - Firewall FULL
-
[PDF] Share Giáo trình Quản trị web & Mail Server
-
[PDF] Chia sẻ Giáo trình Mạng không dây FULL
-
[PDF] Share Giáo trình Lắp ráp và Cài đặt máy tính
-
[PDF] Chia sẻ Giáo trình lập trình mạng miễn phí
-
[PDF] Chia sẻ Giáo trình cài đặt và thiết kế mạng
-
Chia sẻ Bộ Tài liệu Bảo trì hệ thống mạng [PDF]
-
[PDF] Chia Sẻ Giáo trình An toàn mạng FULL
-
[PDF] Chia sẻ Giáo trình Lập trình Windows Forms
-
[PDF] Share Giáo trình An toàn bảo mật thông tin FULL
-
[Share PDF] Giáo trình và Tài liệu quản trị mạng
-
[PDF] Giáo Trình Hệ Điều Hành Linux - Tài Liệu Học Linux Toàn Tập
-
[Share PDF] Tài Liệu Quản Trị Mạng Windows Server 2016
-
[Share miễn phí PDF] Tài liệu Windows server 2012
-
[PDF] Chia sẻ Tài liệu Windows Server 2008 [PDF FULL]
-
[PDF] Giáo trình SQL Server 2012 - Học từ cơ bản đến nâng cao
-
[Share miễn phí PDF] Tài liệu MCSA 2016
-
Share miễn phí Tài liệu học SQL Server [File PDF]
-
-
Tài liệu Thiết kế website
-
Tin học văn phòng
-
Wordpress
Thời gian đọc của bạn