Safari 7.0.3动画ScrollTop div不起作用?

时间:2014-09-06 21:25:42

标签: javascript jquery html css safari

我无法通过溢出获取#div:滚动到动画并向下滚动到Safari 7.0.3中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);

1 个答案:

答案 0 :(得分:0)

好的,我找到了解决方案。

似乎在Safari中,加载所有内容后,最好是.animate()scollTop。所以在jQuery周围添加这个:

$(window).load(function(){
   $("#menuContainer").animate({scrollTop: $("li:nth-child("+varJumpTo+")").offset().top}, 500);
});

因为在我们计算div offset()的top()位置之前需要加载列表中的所有内容,所以它表现得很糟糕。

谢谢!我希望这有助于其他人:D