Запуск псевдокласса": active " на сенсорном экране
в настоящее время я разрабатываю приложение JavaScript, которое будет развернуто на сенсорном киоске под управлением Chrome в режиме киоска.
Я заметил, что когда я использую мышь, чтобы щелкнуть кнопки на интерфейсе, стили, применяемые псевдо-классом ":active", видны, когда мышь не работает. Моя проблема в том, что одна и та же кнопка, вызванная касанием экрана, не вызывает активного состояния.
есть ли способ заставить событие касания вести себя так же, как мыши?
1 ответов
предполагая, что CSS: активный псевдокласс не работает, вам, вероятно, придется использовать события DOM.
работают ли события" mousedown "и" mouseup " с сенсорными экранами? Предполагая, что они это делают, вы можете попробовать что-то вроде этого:
addEventListener("mousedown", function (event) {
if (event.target.setAttribute) {
event.target.setAttribute("data-active", "");
}
}, true);
addEventListener("mouseup", function (event) {
if (event.target.removeAttribute) {
event.target.removeAttribute("data-active");
}
}, true);
затем в вашем CSS замените: active на [data-active], например:
div[data-active] {
/* blah blah */
}
Я не думаю, что это будет работать так же... возможно, вам придется сделать некоторые хитрости, чтобы заставить дочерние элементы работать правильно, для пример.