jquery animate scrollTop和scrollLeft不能同时在ipad上工作

时间:2012-03-05 12:16:00

标签: jquery ios ipad scrolltop

我有以下代码片段,可以将我的页面设置为首页上的特定点。这适用于所有浏览器和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 个答案:

答案 0 :(得分:1)

似乎webkit只能滚动某些webkit构建中的$(“html”)元素,请注意,因为这只是某些版本的webkit客户端的情况。 尝试:

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

而不是

$("body")

我找不到很多关于此的文档,但这打破了我前一段时间制作的网站,并发现如果我嗅探webkit并将滚动动画应用于html而不是正文,这个解决方案有效.... / p>

希望有所帮助

答案 1 :(得分:0)

我在开发插件时遇到了同样的问题(http://kirkas.ch/ascensor/)。

当您在body / html上(特别是在绝对位置)同时动画scrollTop / scrollLeft时,ios浏览器中显然存在一个错误,而是尝试为特定容器设置动画。