Spec-Zone.ru › CSS

CSS-свойство `interest-delay-start`

Экспериментальное: Это экспериментальная технология
Перед использованием в рабочей среде внимательно изучите таблицу совместимости браузеров.

Экспериментальное: Это экспериментальная технология
Перед использованием в рабочей среде внимательно изучите таблицу совместимости браузеров.

CSS-свойство interest-delay-start задаёт задержку между проявлением пользователем интереса к элементу — инициатору интереса — и срабатыванием события interest.

Свойства interest-delay-start и interest-delay-end можно задать с помощью сокращённого свойства interest-delay.

Синтаксис

/* Keyword or custom delay */
interest-delay-start: normal;
interest-delay-start: 2s;
interest-delay-start: 250ms;

/* Global values */
interest-delay-start: inherit;
interest-delay-start: initial;
interest-delay-start: revert;
interest-delay-start: revert-layer;
interest-delay-start: unset;

Значения

Для этого свойства указывается одно значение <time> или ключевое слово normal:

normal
Задаёт задержку по умолчанию для браузера. Это начальное значение.
<time>
Задаёт задержку определённой длительности. Значение должно быть положительным, иначе свойство становится недопустимым.

Формальное определение

Начальное значение normal
Применяется к всем элементам
Наследуется да
Вычисленное значение <code>normal</code> или вычисленное значение времени
Тип анимации по типу вычисленного значения

Формальный синтаксис

interest-delay-start = 
  normal |
  <time>

Примеры

Создание простого эффекта interest-delay-start

В этом примере показано, как interest-delay-start влияет на поведение инициатора интереса.

HTML

Разметка включает <button>, <p> и <input> типа checkbox. Мы задаём для <button> роль инициатора интереса, добавляя атрибут interestfor со значением, совпадающим с id элемента <p>. Так абзац становится целевым элементом. Абзац превращается во всплывающее окно с помощью атрибута popover, который изначально скрывает его.

<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-start</code> of <code>2s</code>
  </label>
</form>

CSS

В CSS мы задаём правило с селектором .delay, которое применяет значение 2s свойства interest-delay-start ко всем инициаторам интереса, которым задан класс delay. С помощью JavaScript мы добавим этот класс к <button>, когда флажок будет отмечен.

.delay {
  interest-delay-start: 2s;
}

JavaScript

В скрипте мы получаем ссылки на <button> и флажок, а затем создаём обработчик события, который переключает класс delay у <button> при каждом изменении значения флажка (при его установке или снятии).

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

Результат

Результат выглядит так:

Попробуйте проявить интерес к кнопке (например, наведя на неё указатель или установив на неё фокус), а затем перестать проявлять интерес, чтобы увидеть, как появляется и скрывается всплывающее окно. По умолчанию оно появляется и скрывается с очень короткой задержкой.

Теперь установите флажок и повторите те же действия. На этот раз при проявлении интереса всплывающее окно должно появиться через 2s. Задержка после того, как интерес пропал, не изменится.

Удаление interest-delay-start после проявления интереса

В этом примере показано, как удалить interest-delay-start у нескольких инициаторов интереса после того, как интерес был проявлен к одному из них.

Это полезный приём. Если бы всплывающее окно появлялось сразу при проявлении интереса к любому инициатору, это отвлекало бы пользователей и раздражало их. Поэтому браузеры по умолчанию добавляют небольшую задержку (подробнее см. в описании interest-delay). Однако после того, как пользователь проявил интерес к одному инициатору, удобно позволить ему быстро перемещаться между другими инициаторами без задержки.

HTML

Разметка включает три элемента <button>, помещённых в абзац с классом container, а также ещё один абзац, превращённый во всплывающее окно с помощью атрибута popover. Все три кнопки настроены как инициаторы интереса и ссылаются на всплывающее окно как на целевой элемент с помощью атрибута interestfor.

<p class="container">
  <button interestfor="mypopover">Button 1</button>
  <button interestfor="mypopover">Button 2</button>
  <button interestfor="mypopover">Button 3</button>
</p>
<p id="mypopover" popover>Hover tooltip</p>

CSS

В CSS мы применяем к кнопкам значение 1s свойства interest-delay-start, а затем размещаем всплывающее окно под кнопкой, к которой проявлен интерес, задавая для него значение bottom свойства position-area (подробнее см. в разделе Позиционирование всплывающего окна относительно якоря).

button {
  interest-delay-start: 1s;
}

#mypopover {
  position-area: bottom;
}

Наконец, мы объединяем псевдокласс :interest-source с псевдоклассом :has(), чтобы применить interest-delay-start: 0s ко всем кнопкам внутри абзаца, но только если в абзаце есть кнопка, к которой проявлен интерес (то есть она соответствует селектору button:interest-source).

.container:has(button:interest-source) button {
  interest-delay-start: 0s;
}

Результат

Результат выглядит так:

Попробуйте проявить интерес к любой кнопке и обратите внимание: если сразу после этого проявить интерес к другой кнопке, всплывающее окно появится без задержки. Если перестать проявлять интерес к кнопкам, а затем начать снова, исходная задержка вернётся.

Спецификации

Спецификация
CSS Basic User Interface Module Level 4
# propdef-interest-delay-start

Совместимость браузеров

Настольные Мобильные
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari on iOS Samsung Internet WebView Android WebView on iOS
interest-delay-start
142
142
Нет
126
Нет
142
Нет
93
Нет
30.0
142
Нет
normal
142
142
Нет
126
Нет
142
Нет
93
Нет
30.0
142
Нет

См. также

  • interest-delay-end, interest-delay
  • Popover API
  • Использование инициаторов интереса
  • Модуль базового пользовательского интерфейса CSS

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/interest-delay-start

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API