#javascript #ios #mobile-safari #iscroll
#javascript #iOS #mobile-safari #iscroll
Вопрос:
Кто-нибудь придумал, как это решить? Я поговорил с Маттео из Cubiq, и его решение заключалось в использовании переходов вместо преобразований. Прямо сейчас я, по сути, добавляю отступы к размеру клавиатуры под страницей, когда появляется клавиатура, но у этого есть куча новых проблем, связанных с тем, что курсор перепутан:
$('body').on('focus', 'input, textarea', function() {
console.log('SCROLLER INPUT FOCUS');
if(!self.getCurrentScroller()) return;
self.getCurrentScroller().css('padding-bottom', 260);
self.getCurrentIscroll().refresh();
self.getCurrentIscroll().scrollToElement(this, 0);
});
$('body').on('blur', 'input, textarea', function() {
console.log('SCROLLER INPUT BLUR');
if(!self.getCurrentScroller()) return;
self.getCurrentScroller().css('padding-bottom', 0);
self.getCurrentIscroll().refresh();
self.getCurrentIscroll().scrollToElement(this, 0);
});
идея заключается в том, что клавиатура вызывает застревание iScroll над областью просмотра только в том случае, если вы находитесь в нижней части iscroll, и больше нет страницы для прокрутки, когда клавиатура нажимает ее вверх.
Ответ №1:
Иногда виртуальная клавиатура вызывает изменение физического прокрутки. Чтобы вы могли прокручивать его до верха, когда клавиатура скрывается.
$wrapper.find('input, textarea').on('blur', function (e) {
$wrapper.scrollTop(0);
});