Я создал карусель с предыдущей и следующей кнопками, которые всегда видны. Эти кнопки имеют состояние зависания, они становятся синими. На сенсорных устройствах, таких как iPad, состояние зависания является липким, поэтому кнопка остается синей после нажатия на нее. Я не хочу этого.
-
Я мог бы добавить класс
no-hover
ontouchend
для каждой кнопки и сделать мой CSS как это:button:not(.no-hover):hover { background-color: blue; }
, но это, вероятно, довольно плохо для производительности, и не обрабатывать устройства, такие как Chromebook Pixel (который имеет как сенсорный экран и мышь). -
Я мог бы добавить класс
touch
вdocumentElement
и сделать мой CSS например:html:not(.touch) button:hover { background-color: blue; }
Но это также не работает на устройствах с сенсорным и мыши.
Я бы предпочел удалить состояние зависания ontouchend
. Но похоже, что это невозможно. Фокусировка другого элемента не снимает состояние зависания. Нажатие другого элемента выполняется вручную, но я не могу запустить его в JavaScript.
Все найденные решения кажутся несовершенными. Есть ли идеальное решение?