В последнее время я работаю над мобильным webapp. Я оптимизирую первый мобильный телефон, ориентируясь именно на iOS для iPhone прямо сейчас. Мне не нужен точный внешний вид родного приложения, но я считаю, что чувство принадлежности к природе является абсолютным. Я сделал разметку и CSS, чтобы отразить эту идею, оставив меня с этим (аннотированный, чтобы лучше понять проблему, с которой я столкнулся):
Все это работает без проблем, и у него также есть преимущество иметь собственное ощущение со статическим верхним и нижним колонтитулом и прокручиваемый внутренний вид (благодаря -webkit-overflow-scrolling: touch
).
Как любой, кто использовал iOS более 5 минут, будет знать, когда вы прокручиваете вверх или вниз, вы получаете хорошую импульсную прокрутку. Кроме того, когда вы попадаете в верхнюю часть списка, вы получаете хороший эффект "отскока":
Я чувствую, что это помогает определить ощущение iOS, и такая маленькая деталь может пройти долгий путь. К счастью, когда вы находитесь под вершиной списка в прокручиваемом элементе в webapp и прокручиваете верхнюю часть, вы получаете тот же эффект. Это желаемое поведение в действии:
Однако, когда вы находитесь в верхней части списка и пытаетесь воссоздать одно и то же поведение отскока вверху списка (à la Setting.app, см. выше), мы получаем следующее поведение, которое Нежелательный:
Я видел несколько похожих questions в переполнении стека, но все они выбирают отключить подпрыгивая. Мне интересно, возможно ли продолжать прыгать, но всегда делать это на body section section#main
, а не на webapp chrome. Я не использую jQuery, поэтому я бы предпочел, чтобы ответы были в прямом JavaScript (бонусные баллы для решения CSS).
Здесь GitHub repo со всем кодом (Sinatra, HAML и Sass, текущая ветвь so
) или JSFiddle со сломанными изображениями и ссылками, но показывает проблему, о которой идет речь на iPhone (лучше всего добавить на рабочий стол для проверки).