partyzanx
@partyzanx

Как сделать, чтобы меню закрывалось?


При наведении (в мобильном дизайне - при клике) на div:hover появляется span
Как сделать, чтобы в мобильном дизайне при втором клике (а на компьютерном дизайне также если убираешь мышь) на div эффект hover убирался и span, соответственно, скрывался

Просто в компьютерном дизайне никаких проблем не возникает - навёл - появилось, убрал - исчезло.
А в мобильном дизайне hover не существует, существует клик. Когда кликаешь на div , то span появляется , а при повторном клике , увы, не исчезает, приходится кликать куда-нибудь в сторону, что может ряд проблем таких как клик на другую ссылку.
  • Вопрос задан
  • 92 просмотра
Решения вопроса 1
partyzanx
@partyzanx Автор вопроса
Вопрос решился очень просто
После каждого div создаём ещё контейнер .hoverHelper
.hoverHelper {display: none;
width: 0;
    height: 0;
    top: 0;
    left: 0;
    margin-right: 0!important;
    transition-delay: .5s;}
.div:hover + .hoverHelper {display: unset;
    width: 40px;
    margin-left:-40px;
    height: 40px;
    top: 0; 
    transition-delay: .5s;
    z-index: 10;
}

Всё решилось очень просто на css

Получается, что этот .hoverHelper перекрывает div с отсрочкой полсекунды, и когда мы второй раз жмём на div, ты мы уже жмём на невидимый .hoverHelper, и поэтому эффект .div:hover снимается.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
FeST1VaL
@FeST1VaL
Тихий
Добавить переменную состояния, т.е при открытии добавлять data-show='true' ну и при закрытии data-show='false'
И проверять состояние и выполнять уже действия по открытию и закрытию...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы