Прокрутка iPad + Jquery работает один раз, а затем останавливается - PullRequest
1 голос
/ 16 ноября 2011

Я не могу проверить свой веб-сайт, потому что у меня нет iPad, но парень, на которого я работаю, вчера пошел в магазин яблок, чтобы попробовать его, и вел себя странно.

Так что это веб-сайт с горизонтальной прокруткой, и если вы нажимаете на навигацию, он использует jquery для прокрутки до элемента, ссылающегося на ссылку. Это прекрасно работает во всех браузерах, без ошибок консоли в Firefox, Chrome или IE9.

Проблема на iPad заключается в том, что нажатие на ссылку в первый раз работает нормально - оно прокручивается так, как должно. Но после этого нажатие на ссылки больше не работает. Он сказал, что он сдвинется всего на несколько пикселей, а затем остановится.

Я подписал соглашение о неразглашении, поэтому не могу показать сайт, но вот код, который я привязал к навигации. Здесь что-то не так? Кто-нибудь сталкивался с такой проблемой на iPad?

$("#navhome, #logo").bind('click', function(event) {
    // Home button and the page logo send you to the #home element
    event.preventDefault();
    scrollToID($("#home"), this);
});

function scrollToID(id, nav) {
    $("html, body").stop();
    xtarget = id.position().left;
    $("html, body").animate({scrollLeft: xtarget}, 'slow');
}

Я имею в виду, это похоже на способ сделать это. Зачем айпаду какие-то проблемы?

Сейчас я продолжу просматривать Google, я не ожидаю многого без возможности связать страницу. : /

Ответы [ 2 ]

1 голос
/ 16 ноября 2011

Можете ли вы опубликовать больше кода?Мне кажется, ваш пример отлично работает на моем iPad.

http://jsfiddle.net/DzyYT/

http://jsfiddle.net/DzyYT/show (для пользователей iPad)

Я заметил одну ошибку.При использовании прокрутки, чтобы прокрутить в сторону, он движется с импульсом.Если при нажатии кнопки «Возврат к исходному экрану» экран все еще скользит, он не работает.

0 голосов
/ 04 января 2012

Возвращаясь к этой проблеме, после получения электронного письма от кого-то с похожей проблемой.

Проблема, с которой я столкнулся, заключалась в том, что я заставил весь веб-сайт растянуть тело страницы, что хорошо работало при касании iPad-контроль (как смахивание).Однако, делая это, мне нужно было перемещать окно навигации либо с помощью javascript (неровный), либо позиции: фиксированная (плавная, но слабая поддержка мобильных устройств).

Затем возникла ошибка в iOS5, я все еще не уверенпо причине, но это связано с прокруткой с помощью анимации jQuery и использованием движущегося элемента div с интерактивными элементами во время движения.

Навигация станет неактивной до остановки анимации, но иногда она становится неактивной даже после анимации, покавы взаимодействовали с сайтом путем прокрутки, масштабирования и т. д. Очевидно, что этот обходной путь не является удобным для пользователя.

Мое окончательное решение заключалось в том, чтобы вместо этого обернуть содержимое в элемент div, размер которого соответствует ширине браузера.Как вы, наверное, знаете, iPad и аналогичные сенсорные устройства не имеют встроенной сенсорной поддержки для прокрутки div, только ограниченная прокрутка.

Возможно, где-то есть лучшее решение, но на данный момент мы просто оборачиваемэто в div, так что наша навигация не должна двигаться вообще.Только наш контент движется, заключенный в себе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...