Это возможный вызвать игнорирует: псевдокласс при наведении курсора для пользователей iPhone/iPad?

У меня есть некоторые меню CSS на моем сайте, которые расширяются с :hover (без js)

Это работает полуповрежденным способом над продуктами компании Apple, например, касание активируется :hover управляйте и разверните меню, но затем касающийся в другом месте не удаляет :hover. Также, если существует ссылка в элементе, который является :hover'редактор, необходимо коснуться дважды для активации, ссылка (сначала касаются триггеров :hover, второе касание инициировало ссылку).

Я смог заставить вещи работать приятно над iPhone путем привязки touchstart событие.

Проблема состоит в том, что иногда мобильное сафари все еще принимает решение инициировать :hover правило из CSS вместо моего touchstart события!

Я знаю, что это - проблема потому что, когда я отключаю весь :hover правила вручную в CSS, мобильное сафари работает отлично (но регулярные браузеры, очевидно, больше не делают).

Есть ли способ динамично "отменить" :hover правила для определенных элементов, когда пользователь находится на мобильном сафари?

Посмотрите и сравните поведение iOS здесь: Примечание к http://jsfiddle.net/74s35/3/: то, что только некоторые свойства CSS инициировали два поведения по щелчку, например, display:none;, но не фон: красный; или текстовое художественное оформление: подчеркивание;

94
задан Christopher Camps 6 June 2014 в 05:24
поделиться

1 ответ

вот код, в который вы захотите поместить его

// a function to parse the user agent string; useful for 
// detecting lots of browsers, not just the iPad.
function checkUserAgent(vs) {
    var pattern = new RegExp(vs, 'i');
    return !!pattern.test(navigator.userAgent);
}
if ( checkUserAgent('iPad') ) {
    // iPad specific stuff here
}
-12
ответ дан 24 November 2019 в 06:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: