2012-03-19 2 views
2

Я пытаюсь установить свиток с помощью 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; 
     } 
    }); 

 

UPDATE:

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

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

 

    

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

 

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

+0

Вы хотите использовать «scrollTop (value)» (http://api.jquery.com/scrollTop/)? Что такое «$ .Scroll»? Плагин? Похоже, вы устанавливаете элемент, который выполняет прокрутку; Я не видел ничего подобного. – JoshNaro

+0

Я создаю объект с именем $ .Scroll, чтобы определить местоположение scrollTop. Я думаю, проблема заключается в том, что iOS, похоже, не распознает $ ('html') или $ ('body') как объект scrollTop, что не приводит к анимации, если scrollTop используется как свойство .animate. – Dylan

+0

Я пробовал использовать объект $ .Body, и он работает, но действительно изменчив. Я слышал, что jQuery scrollTop() ошибочен в iOS, это правильно? – Dylan

ответ

0

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

0

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

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