Я склонен использовать следующий SCSS @mixin
для эффекта анимации, чтобы пользователи знали, что является интерактивным в моих проектах.
@mixin clickAnimation($opacity: 0.5, $distance: -1px, $time: 75ms) {
opacity: 1;
transition: $time ease;
cursor: pointer;
&:hover {
transform: translateY($distance);
opacity: $opacity;
}
&:active {
transform: translateY(2px);
}
}
Я буду использовать его на сайте следующим образом:
a:not(.disabled) {
@include clickAnimation();
}
Недавно я заметил странную проблему с этим.
Еслипользователь наводит элемент <a>
на нижнем пикселе <a>
, <a>
преобразуется до -1px
.Когда пользователь щелкает <a>
, выполняется состояние :active
css (в данном случае перевод до 2px
), но действие щелчка не регистрируется.Поэтому никакие обработчики щелчков не сработают, и никакие ссылки не вызовут перенаправлений.
Кто-нибудь имел эту проблему раньше и знает, что я мог бы сделать, чтобы ее исправить?
По запросу, вот скрипка, котораядемонстрирует проблему: https://jsfiddle.net/bf9yk0tn/