2014-03-04 103 views
1

此問題僅適用於移動Safari。Mobile Safari - 滾動到元素

在我的網站上我有評論,我在我的產品頂部審查了明星。當用戶點擊評論星時,我希望屏幕向下滾動至產品評論。在Android和桌面上,該頁面會作爲例外滾動,但在iOS上它所做的只是閃爍並保持在同一位置。

下面是代碼:

$('html, body').animate({ 
    scrollTop: $("#reviews").offset().top, 
    scrollLeft: 0 
}, 400); 

這裏是一個jsbin展示的問題。

http://jsbin.com/losuz/3/

感謝

+1

得到的網址,而不是隻是添加一個#your_id它滾動到該div – csanonymus

+0

@csanonymus它似乎我落入錘子和釘子的情況下,當你喜歡jQuery,每個問題都可以通過jQuery解決...感謝您的簡潔迴應,您是對的,但我確實喜歡動畫給我帶來的平滑過渡。 – Duane

回答

6

我確實找到了正確的答案,我的問題是scrollLeft在iOS中導致問題。

$('html, body').animate({ 
    scrollTop: $("#reviews").offset().top 
}, 400); 

這可以在http://jsbin.com/losuz/6/進行測試。

爲了便於比較,你可以看到在奧斯卡拉巴斯的回答這裏提出的功能:http://jsbin.com/losuz/5/

我喜歡動畫的幻燈片光滑,但奧斯卡的答案也是有效的。

+1

奧斯卡的解決方案在IOS中不適用於我,但我也使用骨幹牽線木馬框架。 Duane的解決方案確實對我有用。 謝謝 –

1

你試過scrollIntoView

$('#reviews')[0].scrollIntoView(); 
+0

就像@csanonymous你的答案似乎適用於此,但我失去了動畫的平滑過渡。如果在一天結束時沒有人提出解決方案,請立即投訴,我會將您標記爲正確。謝謝 – Duane