Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the wordpress-seo domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /var/www/vinascript/html/wp-includes/functions.php on line 6114
Cách tạo thanh tìm kiếm ẩn bằng HTML, CSS và JavaScript - VinaScript

Latest Post

Triển khai dự án PHP, Mysql với Nginx trên Docker Tìm hiểu về HTML – Ưu điểm, nhược điểm và cách hoạt động của HTML

Với HTML, CSSJavaScript tạo một thanh tiềm kiếm mở rộng là việc rất đơn giản. Dưới đây là hướng dẫn chi tiết từng bước.

Tạo thanh tìm kiếm ẩn

Các thành phần GUI tương tác giúp ứng dụng dễ sử dụng hơn. HTML mặc định bao gồm một số thành phần biểu mẫu, nhưng bạn sẽ muốn dùng CSS để chúng phù hợp với thiết kế. Bạn có thể dùng JavaScript để mở rộng hoặc chỉnh sửa hoạt động của chúng.

Bạn có thể tạo những thành phần đó bằng một thư viện như Tailwind. Tuy nhiên, biết cách tạo chúng từ đầu vẫn hữu ích. Dưới đây là cách tạo thanh tìm kiếm ẩn bằng HTML, CSS và JavaScript.

Tạo cấu trúc nội dung bằng HTML

Dưới đây là đoạn mã HTML cho tính năng mà bạn đã mô tả. Bạn sẽ có một phần tử cha chứa một phần tử nhập và một nút bấm. Đồng thời, bạn cũng sẽ tích hợp các lệnh Font Awesome để sử dụng biểu tượng tìm kiếm, trong trường hợp này là biểu tượng hình kính lúp.

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <script src="https://kit.fontawesome.com/d69fb28507.js" crossorigin="anonymous"></script>
    <title>Hidden Search Bar</title>
</head>

<body>
    <div class="search-container">
       <input type="text" placeholder="Search...">
          <button type="button">
              <i class="fas fa-search"></i>
          </button>
      </div>
</body>

</html>

Trong đoạn mã này:

  • search-container là phần tử cha chứa các thành phần con.
  • input là thành phần nhập để người dùng nhập thông tin tìm kiếm.
  • button là nút bấm cho chức năng tìm kiếm.
  • i với class “fas fa-search” sử dụng Font Awesome để chèn biểu tượng tìm kiếm hình kính lúp vào nút bấm.

Tạo kiểu giao diện bằng CSS

Trong tệp CSS, việc xác định vị trí tương đối của phần tử cha là quan trọng để điều chỉnh sự di chuyển của các phần tử input và nút bấm xung quanh nó.

Để đảm bảo sự trung tâm hóa, bạn có thể căn chỉnh cả hai phần tử để chúng xuất hiện ở giữa màn hình. Tuy nhiên, trong ứng dụng của bạn, bạn có thể quyết định hiển thị thanh tìm kiếm chỉ khi cần thiết. Đồng thời, hãy đảm bảo rằng cả hai phần tử đều có cùng chiều rộng để chúng có kích thước đồng đều và không có phần tử nào lớn hơn phần tử kia.

Tiếp theo, hãy gán một class hoạt động cho phần tử cha, được áp dụng cả cho phần tử input và nút bấm. Điều này sẽ làm cho chúng biến đổi theo yêu cầu mỗi khi phần tử di chuyển.

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    background-color: #d9d9d9;
    height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
}

.parent {
    position: relative;
}

.input {
    outline: none;
    border: none;
    border-radius: 100px;
    padding: 5px 10px;
    width: 40px;
    transition: width 0.3s ease;
}

.input::placeholder {
    color: green;
}

.parent.active .input {
    width: 200px;
}

.btn {
    width: 40px;
    padding: 5px 10px;
    cursor: pointer;
    border-radius: 100px;
    border: none;
    background: green;
    display: inline;
    box-shadow: 0 0 5px rgba(0, 0, 0, 0.2);
    position: absolute;
    top: 0;
    left: 0;
    transition: transform 0.3s ease;
}

.parent.active .btn {
    transform: translateX(210px);
}

.fa-solid {
    color: #ffffff;
}

Kết quả:

Nút bấm được tạo bằng CSS

Thêm tính năng JavaScript

Tiếp theo, viết code JavaScript cho các nhân tố. Đầu tiên, chọn thành phần parent, input và nút bấm bằng phương thức querySelector() của JavaScript.

Sau đó, thêm trình xử lý sự kiện nhấp chuột vào nút. Khi được nhấp vào, nút sẽ chuyển đổi theo lớp đã chọn. Thêm phương thức focus() để đặt tiêu điểm cho phần tử đã chỉ định. Nó bắt đầu nhấp nháy bất cứ khi nào thanh tìm kiếm mở rộng.

let input = document.querySelector(".input");
let btn = document.querySelector(".btn");
let parent = document.querySelector(".parent");

btn.addEventListener("click", () => {
    parent.classList.toggle("active");
    input.focus();
});

Nếu bạn nhấp vào nút, nó sẽ mở thanh tìm kiếm và ngược lại. Nó xuất hiện như hình bên dưới:

Dùng JavaScript tạo thanh tìm kiếm ẩn

Bây giờ, nếu bạn nhập thông tin và nhấp vào nút, nó sẽ đóng lại khi hệ thống tìm kiếm thông tin.

Thật đơn giản phải không? Hi vọng bài viết hữu ích với các bạn.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *