Проблема:
- С мышью:
Наведение работает, но после нажатия на кнопку состояние наведения зависает — этот скрипт исправляет. - На сенсорных устройствах (мобильный)::
После нажатия кнопки (особенно кнопки отправки формы) она остается в стиле наведения и не сбрасывается даже при использовании того же сценария.
Почему состояние наведения по-прежнему сохраняется на сенсорных устройствах, и что является правильным способ отключить или сбросить стили наведения при касании, сохраняя при этом наведение для пользователей мыши?
Скрипт, который устраняет проблему для мыши/указателя, но не для сенсорного управления:
document.addEventListener('DOMContentLoaded', function () {
// target your button and common button classes (keeps backward compatibility)
const buttons = document.querySelectorAll('.elementor-button, .custom-button');
buttons.forEach(button => {
const removeFocusAndHover = () => {
try { button.blur(); } catch (e) {}
button.classList.add('no-hover');
setTimeout(() => button.classList.remove('no-hover'), 140);
};
// pointerdown covers touchstart and mousedown in modern browsers
button.addEventListener('pointerdown', removeFocusAndHover, { passive: true });
// fallback for older touch-only browsers
button.addEventListener('touchstart', removeFocusAndHover, { passive: true });
// final fallback
button.addEventListener('click', removeFocusAndHover);
});
});
Подробнее здесь: https://stackoverflow.com/questions/798 ... -for-mouse
Мобильная версия