Предотвращение наложения серым цветом на сенсорный экран в мобильном браузере Safari / Webview
Я создаю приложение iOS в webkit, поэтому весь пользовательский интерфейс является веб-просмотром. на touchStart любого элемента возле внешней границы webview (который не имеет привязанного к нему события touchStart), я получаю полупрозрачный серый ящик, накладывающий всю область webview. Я устранил -webkit-tap-highlight-color
или -webkit-touch-callout
как причины. Что делать, чтобы удалить это поведение?
- Чтение трассировки стека iOS Webkit
- Невозможно создать / включить среду WebKit в проект iOS
- NSAttributedString initWithData: options: documentAttributes: ошибка: выполняется очень медленно
- Как я могу получить файл с помощью WKWebView?
- iOS 9 `-webkit-overflow-scrolling: touch` и` overflow: scroll` перерывы прокрутки
- WKWebView + contentInset делает неправильный размер контента
- WebKit Audio искажается на iOS 6 (iPhone 5) впервые после включения питания
- iOS Webkit игнорирует медиа-запросы
просто поместите этот стиль, у вас все еще есть действия по умолчанию, но без серого наложения
a { -webkit-tap-highlight-color: rgba(0,0,0,0); }
если вы хотите удалить панель действий, просто поставьте это
a { -webkit-tap-highlight-color: rgba(0,0,0,0); -webkit-touch-callout: none; }
И вот ты! чистые ссылки наконец!
Мое рабочее решение – это захват и предотвращениеDefault на событии touchstart
в теле html-документа. Все другие более явные обработчики событий не затронуты. Я столкнулся с проблемой с элементами select
, которые я рассмотрел в обработчике событий body (я использую jQuery):
$('body').live( 'touchstart', function(e){ if(e.target.localName != 'select'){ e.preventDefault(); } }
)