Я создаю приложение iOS в webkit, поэтому весь пользовательский интерфейс - это веб-просмотр. на touchStart любого элемента возле внешней границы webview (который не имеет привязанного к нему события touchStart), я получаю полупрозрачный серый ящик, накладывающий всю область webview. Я устранил -webkit-tap-highlight-color
или -webkit-touch-callout
как причины. Что делать, чтобы удалить это поведение?
Предотвращение наложения серым цветом на сенсорный экран в мобильном браузере Safari/Webview
Ответ 1
просто поместите этот стиль, у вас все еще есть действия по умолчанию, но без серого наложения
a {
-webkit-tap-highlight-color: rgba(0,0,0,0);
}
если вы хотите удалить панель действий, просто поставьте этот
a {
-webkit-tap-highlight-color: rgba(0,0,0,0);
-webkit-touch-callout: none;
}
И вот ты! чистые ссылки наконец!
Ответ 2
Мое рабочее решение - захват и предотвращениеDefault в событии touchstart
тела документа html. Все другие более явные обработчики событий не затронуты. Я столкнулся с проблемой с элементами select
, которые я рассмотрел в обработчике событий body (я использую jQuery):
$('body').live(
'touchstart',
function(e){
if(e.target.localName != 'select'){
e.preventDefault();
}
}
)