Предотвращение наложения серого на сенсорный запуск в мобильном Safari / Webview - PullRequest
29 голосов
/ 24 февраля 2011

Я создаю приложение для iOS в webkit, поэтому весь мой интерфейс - это веб-просмотр.на touchStart любого элемента около внешней границы веб-просмотра (с которым не связано событие touchStart) я получаю полупрозрачный серый прямоугольник, перекрывающий всю область веб-просмотра.Я устранил -webkit-tap-highlight-color или -webkit-touch-callout как причины.Что мне сделать, чтобы удалить это поведение?

Ответы [ 2 ]

73 голосов
/ 23 ноября 2011

просто введите этот стиль, у вас все еще есть действия по умолчанию, но без серого наложения

a {
    -webkit-tap-highlight-color: rgba(0,0,0,0);
}

если вы хотите удалить панель действий, просто поставьте эту

a {
    -webkit-tap-highlight-color: rgba(0,0,0,0);
    -webkit-touch-callout: none;
}

И вот, пожалуйста! очисти ссылки наконец!

7 голосов
/ 24 февраля 2011

Моим рабочим решением является захват и предотвращение дефолта по событию touchstart тела html-документа.Все другие более явные обработчики событий не затрагиваются.Я столкнулся с проблемой с select элементами, о которой я говорил в обработчике событий тела (я использую jQuery):

$('body').live(
'touchstart', 
function(e){
    if(e.target.localName != 'select'){
        e.preventDefault(); 
    }
}

)

...