HTMLButtonElement: свойство popoverTargetAction
Свойство popoverTargetAction интерфейса HTMLButtonElement получает и устанавливает действие, которое должно быть выполнено ("hide", "show", или "toggle") над элементом всплывающей подсказки, управляемым кнопкой.
Оно отражает значение атрибута HTML popovertargetaction.
Значение
Перечисление. Возможные значения:
"hide"-
Кнопка скроет отображаемую всплывающую подсказку. Если вы попытаетесь скрыть уже скрытую подсказку, действие не будет выполнено.
"show"-
Кнопка отобразит скрытую всплывающую подсказку. Если вы попытаетесь отобразить уже отображаемую подсказку, действие не будет выполнено.
"toggle"-
Кнопка переключит всплывающую подсказку между отображением и скрытием. Если подсказка скрыта, она будет отображена; если отображена, она будет скрыта. Если
popoverTargetActionне задано,"toggle"является значением по умолчанию, которое будет выполнено кнопкой-управлением.
Примеры
Переключение действия всплывающей подсказки с автоматической подсказкой
Этот пример демонстрирует базовое использование API всплывающей подсказки со значением "toggle" для свойства popoverTargetAction. Атрибут popover задан как "auto", поэтому всплывающую подсказку можно закрыть ("легко закрыть"), щелкнув за пределами области всплывающей подсказки.
Сначала мы определяем HTML-элемент <button>, который будет использоваться для отображения и скрытия всплывающей подсказки, и элемент <div>, который будет всплывающей подсказкой. В этом случае мы не устанавливаем атрибут HTML popovertargetaction на элементе <button> или атрибут popover на элементе <div>, так как мы будем делать это программно.
<button id="toggleBtn">Toggle popover</button> <div id="mypopover">This is popover content!</div>
Код JavaScript сначала получает доступ к элементам <div> и <button>. Затем он определяет функцию для проверки поддержки всплывающей подсказки.
const popover = document.getElementById("mypopover");
const toggleBtn = document.getElementById("toggleBtn");
// Check for popover API support.
function supportsPopover() {
return HTMLElement.prototype.hasOwnProperty("popover");
}
Если API всплывающей подсказки поддерживается, код устанавливает атрибут <div> элемента popover в значение "auto" и делает его целевым элементом для кнопки переключения. Затем мы устанавливаем свойство popoverTargetAction элемента <button> в значение "toggle". Если API всплывающей подсказки не поддерживается, мы изменяем содержимое элемента <div> для указания этого и скрываем кнопку переключения.
if (supportsPopover()) {
// Set the <div> element to be an auto popover
popover.popover = "auto";
// Set the button popover target to be the popover
toggleBtn.popoverTargetElement = popover;
// Set that the button toggles popover visibility
toggleBtn.popoverTargetAction = "toggle";
} else {
popover.textContent = "Popover API not supported.";
toggleBtn.hidden = true;
}
Примечание: Элемент всплывающей подсказки по умолчанию скрыт, но если API не поддерживается, ваш элемент будет отображаться как обычно.
Вы можете попробовать пример ниже. Отображайте и скрывайте всплывающую подсказку, переключая кнопку. Всплывающую подсказку "auto" также можно закрыть, выбрав область за пределами области текста всплывающей подсказки.
Отображение/скрытие всплывающей подсказки с ручной подсказкой
Этот пример демонстрирует использование значений "show" и "hide" атрибута popoverTargetAction.
Код почти идентичен предыдущему примеру, за исключением того, что есть два элемента <button>, и всплывающая подсказка настроена на "manual". Всплывающую подсказку manual нужно закрывать явно, а не "легко закрывать" выбором области за пределами области всплывающей подсказки.
<button id="showBtn">Show popover</button> <button id="hideBtn">Hide popover</button> <div id="mypopover">This is popover content!</div>
function supportsPopover() {
return HTMLElement.prototype.hasOwnProperty("popover");
}
const popover = document.getElementById("mypopover");
const showBtn = document.getElementById("showBtn");
const hideBtn = document.getElementById("hideBtn");
const popoverSupported = supportsPopover();
if (supportsPopover()) {
// Set the <div> element be a manual popover
popover.popover = "manual";
// Set the button targets to be the popover
showBtn.popoverTargetElement = popover;
hideBtn.popoverTargetElement = popover;
// Set the target actions to be show/hide
showBtn.popoverTargetAction = "show";
hideBtn.popoverTargetAction = "hide";
} else {
popover.textContent = "Popover API not supported.";
showBtn.hidden = true;
hideBtn.hidden = true;
}
Всплывающую подсказку можно отобразить, выбрав кнопку "Показать всплывающую подсказку", и скрыть, используя кнопку "Скрыть всплывающую подсказку".
Спецификации
| Спецификация |
|---|
| HTML # dom-popovertargetaction |
Совместимость с браузерами
| Рабочий стол | Мобильные | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
popoverTargetAction |
114 | 114 | 125 | 100 | 17 | 114 | 125 | 76 | 17 | 23.0 | 114 |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/HTMLButtonElement/popoverTargetAction