javascript - jquery animate/scrollTop 到 div 内的多个 anchor

标签 javascript jquery jquery-animate scrolltop

我在我的页面上实现相对复杂的自动滚动功能时遇到了问题。这显示了我的代码中的问题...

http://codepen.io/d3wannabe/pen/XXxdQq

我的页面上有多个 div(在我的示例中为蓝色、红色、绿色),我不仅希望能够滚动到它们(我示例中的前 3 个按钮完美实现),而且我希望能够在内部滚动(底部的 3 个按钮代表我的最佳尝试)。

我想不通的是,为什么滚动功能在我的第一个 div(“scrollTo3rdBlueItem”按钮)上运行良好,但在其他 div(“scrollTo3rdRedItem”和“scrollTo3rdGreenItem”按钮)上却不太准确。在我的完整 Web 应用程序(显然有更多数据需要滚动浏览)中,我基本上看到父 div 位于页面的下方,我在其中滚动的准确性就越低。

虽然我正在努力识别大部分模式,但不能简单地尝试调整偏移值。任何我在这里可能做错的想法都将不胜感激!!

...因为我不允许在不引用代码的情况下发布此内容 - 这是您可以在我的代码笔中看到的 jquery 函数!

function scrollToParent(parentID){
        $('html,body').animate({scrollTop: $('#'+parentID).offset().top}, 500);
 }
function scrollToChild(parentID, childID){
      //first focus on the parent
  scrollToParent(parentID);

      $('#'+parentID).animate(
        {scrollTop: $('#'+ childID).offset().top - 100}
        , 500);
}

最佳答案

更新

这里的回答是完全错误的。留在这里以保留评论。

更新 2

知道了!您需要考虑父 div 的偏移量。将您的 scrollToChild 函数更新为以下内容;

  $('#'+parentID).animate(
    {
      scrollTop: $('#'+ childID).offset().top - $('#'+parentID).offset().top
    }, 500);

关于javascript - jquery animate/scrollTop 到 div 内的多个 anchor ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35227580/

相关文章:

javascript - 响应式 Canvas 上下文

javascript - jQuery 动画点击多次

javascript - JQuery 动画设置超时

javascript - Highcharts 不会导出创建后添加的自定义 SVG 元素

javascript - JavaScript 闭包的一个包罗万象的定义

javascript - 对象样式属性值的数据类型

javascript - 通过动态加载 JavaScript 来提高网站性能?

javascript - 在两个 Javascript/Jquery 函数之间传递 var?

javascript - Foundation 复选框停止与 jQuery 配合使用

javascript - jQuery:动画宽度/高度,但保持居中