Javascript thêm kiểu vào nút

Bạn có thể thêm một lớp CSS hoặc thêm trực tiếp một hoặc nhiều thuộc tính CSS vào một nút đã chọn để kích hoạt

  • Thêm màu nền vào nút đã chọn
  • Thêm một lớp CSS vào một nút đã chọn

Thêm màu nền vào nút đã chọn

Khi bạn muốn thêm một số kiểu CSS vào nút đã chọn/được nhấp trong JavaScript để kích hoạt nút đó,

For Loop rất có thể sẽ là lựa chọn đầu tiên trong tâm trí chúng ta

Nhưng, bạn hoàn toàn không cần sử dụng vòng lặp

Hãy xem làm thế nào để làm điều đó trong hành động

Tạo các phần tử nút HTML

Đây là một thẻ div đơn giản với một trình bao bọc id

Nó có năm phần tử nút HTML trong đó

Không có gì lạ mắt

1 2 3 4 5

Đính kèm các sự kiện nhấp chuột vào các phần tử nút HTML

• Trước tiên, hãy thêm trình xử lý sự kiện nhấp vào tất cả các thành phần bên trong div

const wrapper = document.getElementById["wrapper"];

wrapper.addEventListener['click',[e] => {
}]

• Kiểm tra xem mục được nhấp có phải là nút bên trong chức năng gọi lại sự kiện nhấp không

const isButton = e.target.nodeName === 'BUTTON';

• Nếu mục được nhấp KHÔNG phải là nút, hãy thoát chức năng gọi lại sự kiện nhấp

Vì vậy, nó sẽ không thực thi thêm bất cứ điều gì nếu đó không phải là một nút bấm

if [!isButton] {
    return;
}

Thêm thuộc tính CSS vào nút được nhấp

Thêm màu nền vào nút được chọn/nhấp bằng cách truy cập đối tượng sự kiện được chuyển vào chức năng gọi lại sự kiện nhấp

e.target.style.background = 'red';

Mã này hoạt động tốt cho đến khi nhấp vào nút thứ hai

Sau đó, cả nút được nhấp lần đầu tiên và lần thứ hai sẽ có màu nền đỏ để biểu thị trạng thái hoạt động

Nhưng những gì chúng tôi muốn là chỉ thêm màu nền cho mục hiện được nhấp và xóa nó khỏi mục đã chọn trước đó

Để làm được điều đó, chúng ta cần chụp nút đã chọn/đã nhấp trước đó và xóa màu nền khỏi nút đó

Chụp mục đã chọn/đã nhấp trước đó

• Khai báo một hằng gọi là prevButton bên ngoài sự kiện nhấn nút

• Đặt giá trị ban đầu của nó thành null

let prevButton = null;

• Bây giờ hãy kiểm tra xem có nút nào được thêm vào hằng số prevButton không

Nếu có, hãy xóa màu nền bằng cách đặt giá trị của nó thành không

if[prevButton !== null] {
   prevButton.style.background = 'none';
}

• Cuối cùng, thêm mục hiện được nhấp vào prevButton

Bằng cách này, prevButton không có bất kỳ đối tượng nút nào được nhấp trước đó khi người dùng nhấp vào bất kỳ nút nào lần đầu tiên

Và nó sẽ khả dụng khi người dùng nhấp vào bất kỳ nút nào lần thứ hai trở đi

 prevButton = e.target;

Thêm một lớp CSS vào nút đã chọn/được nhấp

• Việc chỉ thêm một thuộc tính CSS qua JavaScript sẽ gặp một số hạn chế

Chúng tôi luôn khuyên bạn nên tạo riêng quy tắc CSS, chuyển đổi nó bên trong JavaScript

• Định nghĩa một quy tắc CSS được gọi là. hoạt động với một nền tài sản duy nhất. màu đỏ

________số 8

• Thêm các. lớp hoạt động cho đối tượng nút hiện được nhấp là e. Mục tiêu

• Gỡ bỏ. lớp tích cực từ prevButton

let prevButton = null;

const wrapper = document.getElementById["wrapper"];

wrapper.addEventListener['click', [e] => {

  const isButton = e.target.nodeName === 'BUTTON'; 
  
  if [!isButton] {
    return;
  }
  
  e.target.classList.add['active']; // Add .active CSS Class

  if[prevButton !== null] {
    prevButton.classList.remove['active'];  // Remove .active CSS Class
  }
  
  prevButton = e.target;

}];

Nó sẽ hoạt động chính xác như trước đây, nhưng lần này chúng tôi có nhiều quyền kiểm soát hơn trong việc tạo kiểu cho trạng thái nút hoạt động theo bất kỳ cách nào chúng tôi muốn bằng cách sử dụng. lớp năng động

Chúng tôi có thể thêm kiểu bằng JavaScript không?

Chúng tôi có thể sử dụng JavaScript để trực tiếp đặt kiểu cho một phần tử và chúng tôi cũng có thể sử dụng JavaScript để thêm hoặc xóa các giá trị lớp trên các phần tử sẽ thay đổi quy tắc kiểu nào được áp dụng.

Bạn có thể tạo kiểu cho một nút trong HTML không?

Thuộc tính kiểu trên thẻ . Giá trị của nó là CSS xác định giao diện của nút.

Chủ Đề