jquery animate scrollTop и scrollLeft не работают на ipad одновременно - PullRequest
2 голосов
/ 05 марта 2012

У меня есть следующий фрагмент кода, который оживляет мою страницу в определенном месте на моей главной странице. Это прекрасно работает во всех браузерах и на планшетах Android.

if($("body").hasClass("mobile")){
   $scrollable.animate({scrollTop: getPosition()[0]}, scrollSpeed,scrollEffect);
   $scrollable.animate({scrollLeft:  getPosition()[1]}, scrollSpeed,scrollEffect);
}else{
   $scrollable.animate({scrollTop: getPosition()[0],scrollLeft:getPosition()[1]},     scrollSpeed,scrollEffect);
}

Когда я работаю в мобильной версии, scrollLeft и scrollTop не будут работать одновременно. Поэтому я установил их отдельно, и это, кажется, работает в Android, но не на устройствах Ipad (IOS). Таким образом, в приведенном выше примере он будет делать scrollLeft, но не scrollTop (на ipad). Отдельно они работают отлично. Итак, мой вопрос:

Как мне позволить ipad делать обе анимации?

Ответы [ 2 ]

1 голос
/ 12 марта 2012

Кажется, что webkit может прокручивать только элемент $ ("html") в некоторых сборках webkit, будьте осторожны, так как это имеет место только в некоторых версиях клиента webkit. попробовать:

$("html").animate({scrollLeft:100})

вместо

$("body")

Я не могу найти много документации по этому вопросу, но это сломало веб-сайт, который я создал некоторое время назад, и обнаружил, что это решение работает, если я перехватил webkit и применил анимацию прокрутки к html вместо тела ....

надеюсь, это поможет

0 голосов
/ 13 сентября 2012

У меня возникла та же проблема, когда я разработал свой плагин (http://kirkas.ch/ascensor/).

. В браузере ios явно есть ошибка, когда вы одновременно анимируете scrollTop / scrollLeft в теле / ​​html (особенно вабсолютная позиция), вместо этого попробуйте анимировать конкретный контейнер.

...