interest-delay-end

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

Thuộc tính CSS interest-delay-end chỉ định độ trễ giữa thời điểm người dùng mất quan tâm đến phần tử interest invoker và sự kiện loseinterest được kích hoạt.

Cả hai thuộc tính interest-delay-endinterest-delay-start đều có thể được đặt bằng dạng viết tắt interest-delay.

Cú pháp

css
/* Từ khóa hoặc độ trễ tùy chỉnh */
interest-delay-end: normal;
interest-delay-end: 2s;
interest-delay-end: 250ms;

/* Giá trị toàn cục */
interest-delay-end: inherit;
interest-delay-end: initial;
interest-delay-end: revert;
interest-delay-end: revert-layer;
interest-delay-end: unset;

Giá trị

normal

Đặt độ trễ về mặc định của trình duyệt. Đây là giá trị khởi tạo.

<time>

Đặt độ trễ thành một khoảng thời gian cụ thể. Giá trị phải dương, nếu không thuộc tính sẽ không hợp lệ.

Định nghĩa hình thức

Initial valuenormal
Applies toall elements
Inheritedyes
Computed valuenormal or a computed time
Animation typeby computed value type

Cú pháp hình thức

interest-delay-end = 
normal |
<time>

Ví dụ

Tạo hiệu ứng interest-delay-end cơ bản

Trong ví dụ này, chúng ta minh họa cách interest-delay-end ảnh hưởng đến hành vi của interest invoker.

HTML

Đánh dấu bao gồm một <button>, một <p>, và một <input> kiểu checkbox. Chúng ta chỉ định <button> là một interest invoker bằng cách gán cho nó thuộc tính interestfor, có giá trị khớp với id của phần tử <p>. Điều này làm cho đoạn văn trở thành phần tử đích. Đoạn văn được chuyển thành popover bằng cách gán thuộc tính popover, ban đầu ẩn nó đi.

html
<button interestfor="mypopover">Button</button>
<p id="mypopover" popover>Hover tooltip</p>
<form>
  <input type="checkbox" id="apply-delay" />
  <label for="apply-delay">
    Apply an <code>interest-delay-end</code> of <code>2s</code>
  </label>
</form>

CSS

Trong CSS, chúng ta chỉ định một quy tắc với selector .delay áp dụng giá trị interest-delay-end2s cho bất kỳ interest invoker nào có class delay. Chúng ta sẽ thiết lập điều này trên <button> khi checkbox được tích bằng JavaScript.

css
.delay {
  interest-delay-end: 2s;
}

JavaScript

Trong script, chúng ta lấy tham chiếu đến <button> và checkbox, sau đó tạo một event listener bật/tắt class delay trên <button> mỗi khi giá trị checkbox thay đổi (khi được tích hoặc bỏ tích).

js
const btn = document.querySelector("button");
const checkbox = document.querySelector("input");
checkbox.addEventListener("change", () => {
  btn.classList.toggle("delay");
});

Kết quả

Kết quả hiển thị như sau:

Hãy thử thể hiện sự quan tâm đến button (ví dụ: bằng cách hover hoặc focus vào nó) rồi mất quan tâm để quan sát popover hiện và ẩn. Mặc định, popover hiện và ẩn sau một khoảng trễ rất ngắn.

Bây giờ hãy tích checkbox và thử lại các hành động tương tự. Lần này, độ trễ giữa thể hiện quan tâm và popover xuất hiện không bị ảnh hưởng, nhưng độ trễ giữa mất quan tâm và popover biến mất sẽ tăng lên 2s.

Đặc tả kỹ thuật

Specification
CSS Basic User Interface Module Level 4
# propdef-interest-delay-end

Tương thích trình duyệt

Xem thêm