Javascript 如何设置iOS和平板电脑的$滚动?
我正在尝试使用jQuery/JavaScript设置滚动。我很难弄清楚如何在iOS和tablet PC上使用视口。任何帮助都将不胜感激。我需要使用$滚动用于设计/动画目的 谢谢 以下是我目前掌握的情况: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
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事件,但我很难找到这个对象的调用。