2014-03-04 101 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