在 Safari 7.0.3 中,我无法获得带有 overflow:scroll 的 #div 以设置动画并向下滚动到 div 中的特定部分。
它在 FF、Opera、Chrome 中工作得很好,但由于某种原因我无法在 Safari 中工作?有谁知道为什么以及如何解决这个问题? 我试过将#menuContainer 设置为相对定位,但效果不佳。它有时会起作用,有时却不起作用。
CSS
#menu{
position:absolute;
display: block;
right: 0;
}
#menuContainer{
position:absolute;
overflow: scroll;
width: 350px;
right: 0;
}
HTML
<div id="menu">
<div id="menuContainer">
<ul>
<li></li>
<li></li>
<li>.....
<ul>
</div>
</div>
jQuery
$("#menuContainer").animate({scrollTop: $("li:nth-child("+varJumpTo+")").offset().top}, 500);
最佳答案
好的,我找到了解决方案。
似乎在 Safari 中,最好在加载所有内容后执行 .animate() scollTop。所以在 jQuery 周围添加这个是可行的:
$(window).load(function(){
$("#menuContainer").animate({scrollTop: $("li:nth-child("+varJumpTo+")").offset().top}, 500);
});
这很奇怪,因为在我们计算 div offset() 的 top() 位置之前,需要加载列表中的所有内容。
谢谢!我希望这可以帮助其他人:D
关于javascript - Safari 7.0.3 动画 ScrollTop div 不工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25704897/