Javascript 如何设置iOS和平板电脑的$滚动?

Javascript 如何设置iOS和平板电脑的$滚动?,javascript,jquery,ios,cross-browser,tablet,Javascript,Jquery,Ios,Cross Browser,Tablet,我正在尝试使用jQuery/JavaScript设置滚动。我很难弄清楚如何在iOS和tablet PC上使用视口。任何帮助都将不胜感激。我需要使用$滚动用于设计/动画目的 谢谢 以下是我目前掌握的情况: var isIphone = navigator.userAgent.match(/iPhone/i) != null; var isIpod = navigator.userAgent.match(/iPod/i) != null; var isIpad = nav

我正在尝试使用jQuery/JavaScript设置滚动。我很难弄清楚如何在iOS和tablet PC上使用视口。任何帮助都将不胜感激。我需要使用$滚动用于设计/动画目的

谢谢

以下是我目前掌握的情况:



    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 touch事件:



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

  
这似乎对滚动和触摸事件都有效。

我认为window.scrollTo(x,y)将得到您想要的,但您需要确保窗口实际上是可滚动的(即内容大于窗口且正文溢出是可滚动的)

旁注:我从未见过有人在jQuery库中存储这样的变量。为什么不直接执行
var scrollableObject=($.browser.mozilla | |$.browser.msie)$('html'):$.Body

我认为window.scrollTo(x,y)将得到您想要的,但您需要确保窗口实际上是可滚动的(即,内容大于窗口,正文溢出是可滚动的)


旁注:我从未见过有人在jQuery库中存储这样的变量。为什么不直接执行
var scrollableObject=($.browser.mozilla | |$.browser.msie)$('html'):$.Body

iOS会停止滚动计时器,因此对于大多数基于部分计时器的动画来说,它们都不起作用。我的滚动很好,只是jQuery.animate与iOS Safari的滚动类型实现不兼容

iOS会停止滚动计时器,因此对于大多数基于部分计时器的动画来说都无法工作。我的滚动很好,只是jQuery.animate与iOS Safari的滚动类型实现不兼容

您的意思是使用“scrollTop(value)”()?什么是“$.Scroll”?插件?看起来您正在设置进行滚动的元素;我还没有见过这样的东西。我正在创建一个名为$.Scroll的对象来帮助定义scrollTop的位置。我认为问题在于,iOS似乎没有将$('html')或$('body')识别为scrollTop的对象,如果将scrollTop用作.animate属性,则不会产生动画。我尝试使用$.body对象,但它可以工作,但确实不稳定。我听说jQuery scrollTop()在iOS上有错误,对吗?我真正想做的是使用touch scroll事件,但我找不到这个对象的调用。你是说使用“scrollTop(value)”()?什么是“$.Scroll”?插件?看起来您正在设置进行滚动的元素;我还没有见过这样的东西。我正在创建一个名为$.Scroll的对象来帮助定义scrollTop的位置。我认为问题在于,iOS似乎没有将$('html')或$('body')识别为scrollTop的对象,如果将scrollTop用作.animate属性,则不会产生动画。我尝试使用$.body对象,但它可以工作,但确实不稳定。我听说jQuery scrollTop()在iOS上有错误,对吗?我真正想做的是使用touch scroll事件,但我很难找到这个对象的调用。