Как установить $ .Scroll для iOS и планшетов? - PullRequest
2 голосов
/ 19 марта 2012

Я пытаюсь установить прокрутку с помощью jQuery / JavaScript.У меня проблемы с выяснением того, как использовать область просмотра для iOS и планшетных ПК.Любая помощь будет оценена.Мне нужно использовать $ .Scroll для дизайна / анимации.

Спасибо,

Вот что у меня есть:


  

    var isIphone = navigator.userAgent.match(/iPhone/i) != null;
    var isIpod = navigator.userAgent.match(/iPod/i) != null;
    var isIpad = navigator.userAgent.match(/iPad/i) != null;

    // now set one variable for all iOS devices
    // What do I do for Tablet PC's?

    var isIos = isIphone || isIpod || isIpad;

    jQuery(function ($) {
      $.Window = $(window); // We'll use this later on 
      $.Body = $('body');
      if ( !isIos ) {
        // Ternary for desktop
        $.Scroll = ($.browser.mozilla || $.browser.msie) ? $('html') : $.Body;
      } else {
        // Need to detect iOS and Tablet PC's
        $.Scroll = $.Body;
      }
    });

  

ОБНОВЛЕНИЕ:

Спасибо за вход!

Я выяснил, как получить доступ к сенсорному событию iOS:


  

    $.Window
      .bind('touchmove',
        function (e) {
          //code goes here
      })
      .bind('scroll',
        function (e) {
          //code goes here
      })

  

Это похоже на события прокрутки и касания.

Ответы [ 2 ]

0 голосов
/ 02 июля 2012

iOS останавливает таймеры при прокрутке, поэтому по большей части анимация на основе таймера не будет работать. Моя прокрутка прошла хорошо, просто jQuery .animate не работает с реализацией прокрутки в iOS Safari.

0 голосов
/ 20 марта 2012

Я думаю, window.scrollTo (x, y) получит то, что вы хотите, но вы должны убедиться, что окно действительно прокручиваемо (т. Е. Содержимое больше, чем окно, а переполнение тела можно прокручивать).

Sidenote : я не видел, чтобы кто-нибудь хранили переменные в в библиотеке jQuery.Почему бы просто не сделать var scrollableObject = ($.browser.mozilla || $.browser.msie) ? $('html') : $.Body;?

...