Публикация этого вопроса в основном в надежде подтвердить мои подозрения о поведении и, таким образом, задокументировать его для других программистов. (Поскольку я не нашел записи об этом нигде в Интернете)
У меня есть сайт, который я создаю, навигационная панель которого имеет следующие свойства: Горизонтальная секция представляет собой <ul>
из <li>
, а некоторые из <li>
имеют оба:
Элемент n
<a>
приведет вас к этой теме.Селектор CSS при наведении, который запускает
display:block
в подменю — вложенный<ul>
, который затем опускается вертикально вниз.
На рабочем столе все это ведет себя так, как я и ожидал: при наведении на ключевой элемент открывается подменю, а при нажатии на него выполняется событие щелчка (в данном случае это обычная ссылка <a>
.
Но на устройстве iOS (проверено на Air, Mini, iPhone 6) я обнаружил, что однократное касание открывает подменю, а повторное касание (когда подменю открыто) вызывает ссылку на управляющий элемент.
Длительное нажатие вызовет «контекстное меню ссылки».
Это именно то, что я хотел сделать, и это ОТЛИЧНО! Но я не знаю, ПОЧЕМУ он это делает. В то время как меню основано на Bootstrap, но я не могу найти ни одного бутстрапа, который это делает.
В настоящее время я думаю, что iOS Safari имеет какой-то волшебный код, который добавляет это (очевидно желательное) поведение, решая, что если у вас есть элемент с :hover CSS (или, я думаю, связанный обработчик события onhover), а также связанный обработчик события click, тогда первое касание вызовет и будет вызывать событие наведения, а второе касание вызовет событие щелчка.
Вопрос:
Кто-нибудь знает, с уверенностью, что является источником такого поведения.
Может ли кто-нибудь найти документацию об этом поведении!?
Хотели бы люди поделиться другими платформами, на которых это работает/не работает (планшеты Android? планшеты Windows? старые iOS?)