Как убрать двойной клик по ссылке на iOS?

Такой вопрос. На сайте есть кнопки на которых есть псевдоэлемент :hover. iOS реагирует на данный псевдоэлемент и по первому клику отображает hover эффект, а по второму клику уже переходит на нужную страницу.

Как сделать, что бы не было необходимости кликать дважды?


Ответы (2 шт):

Автор решения: Alexey Vladimirov

Традиционное решение задачи выглядит как-то так:

if (!('ontouchstart' in document.documentElement)) {
  document.documentElement.classList.add('no-touch');
}
.no-touch button:hover {
  /* стили по ховеру, которые не будут работать на touch-устройствах */
  color: red;
}
<button>Кнопка</button>

→ Ссылка
Автор решения: Gojira

Собственно, может кому-нибудь пригодится.

В iOS заложен функционал, который сперва показывает анимацию, :hover или псевдоэлементы :before и :after.

По этому, что бы убрать двойной клик на iOS необходимо:

  1. Применить подход написал Alexey Vladimirov чуть выше. Таким образом убрать с ссылок или кнопок всю анимацию;
  2. Проверьте, нет ли на ссылках свойств transition или псевдоэлементов :before и :after;
  3. Учитывайте тот момент, что использование библиотек с анимацией, как в моем случае это был aos.js - то он способствует наследованию или присвоению анимационных свойств transition.

Более подробная инфа есть на англоязычной версии сие портала.

Надеюсь сэкономлю кому-нибудь время на поиски решения этой ерунды:)

→ Ссылка