ошибка прокрутки iPhone при прокрутке текстового поля
Я веб-страницы со следующим html:
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1, user-scalable=0">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
</head>
<body>
<div style='display:flex;flex-direction:column;height:100%;'>
<div style='overflow:auto'>
<div style='height:500px; background:green;'></div>
<div class='container'>
<div class='row'>
<div class='col-sm-6'>
<input type='text' style='' class='form-control' placeholder='swipe here' />
</div>
</div>
</div>
<div style='height:500px; background:blue;'></div>
</div>
</div>
</body>
</html>
загрузите его на iPhone. Попробуйте прокручивать вверх и вниз, проводя пальцем. Теперь попробуйте прокрутить, начав салфетки в текстовом поле, которое говорит "салфетки здесь". Со мной он не будет прокручиваться, когда я это сделаю. Я использую iPhone 6S.
это ошибка? Как я могу обойти это?
2 ответов
проблема появляется на iPhone 6s и выше.
Кажется, это вызвано <div style='overflow:auto'>
. Когда overflow
удаляется, страница прокручивается при прокрутке текстового поля.
протестировано в safari на iPhone 6s, 6s+, 7, 8 и X. надеюсь, это поможет.
С точки зрения пользователя, это ошибка.
при использовании bootstrap вам нужно заключить класс строки в класс контейнера, как показано ниже. Страница получает свойства для прокрутки влево и вправо из-за этого CSS из bootstrap:
.row {
margin-right: -15px;
margin-left: -15px;
}
пример ниже с div.контейнер помогает ограничить ширину приложения.
<div style='display:flex;flex-direction:column;height:100%;'>
<div style='overflow:auto'>
<div style='height:500px; background:green;'></div>
<!--This container is missing to get bootstrap row to work well-->
<div class="container">
<div class='row'>
<div class='col-sm-6'>
<input type='text' style='' class='form-control' placeholder='swipe here' />
</div>
</div>
</div>
<div style='height:500px; background:blue;'></div>
</div>
</div>