javascript - Safari 7.0.3 动画 ScrollTop div 不工作?

标签 javascript jquery html css safari

在 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/

相关文章:

jquery - 在 jQuery 中如何获取文本框更改后的值?

javascript - JQuery待办 list 元素

php - 如何通过读取cookie来隐藏div服务器端

html - 选择具有多个复选框的元素

jquery - 如何使用jquery的每个函数来获取每个元素的attr

javascript - 使用 owl-filter.js 过滤 owl 轮播项目

javascript - ngResource是否可以同步调用?

php - 单击图像时如何更改样式表

javascript - 将样式颜色添加到附加的 li - Javascript

javascript - 传递给 PayPal 表单字段的 jQuery .val 西里尔字母值