2012-03-05 59 views
2

我有以下代碼片段,它將我的頁面動畫化爲我的FrontPage上的特定點。這適用於所有瀏覽器和Android平板電腦。jquery animate scrollTop和scrollLeft不能同時在ipad上工作

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做這兩個動畫?

回答

1

似乎webkit只能在某些webkit版本上滾動$(「html」)元素,應警告,因爲Webkit客戶端的某些版本只有這種情況。 嘗試:

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

,而不是

$("body") 

我無法找到很多關於這個文件,但是這打破了一個網站,我前一陣子做,發現這個解決方案工作,如果我對聞WebKit和應用滾動動畫而不是HTML中的身體....

希望它有助於

+0

對於那些在iOS模擬器中進行測試,我會添加類似的jQuery到這個模擬器不起作用,但在實際設備(iPhone 6,iOS 9.3.5)上工作得很好。 – ashack 2016-09-07 16:48:28

0

我的經驗,當我開發我的插件同樣的問題在(http://kirkas.ch/ascensor/)。

在ios瀏覽器中顯然存在一個錯誤,當您在body/html(特別是絕對位置)上同時爲scrollTop/scrollLeft設置動畫時,請嘗試爲特定容器設置動畫。

+0

可以確認,單獨在body元素上動畫scrollTop或scrollLeft在ios上工作正常,並且它們在一起看起來很棒 - 屏幕濺射和抖動,沒有任何動作。只是想知道在問題中$ scrollable實際上是否是'body'元素。 – commonpike 2013-02-04 13:48:39

+0

-1提供的鏈接返回403 – marcgg 2014-01-20 08:25:25

+0

github:https://github.com/kirkas/Ascensor.js – jackocnr 2014-01-28 22:28:50

相關問題