平滑滚动到 div 内的锚点

Posted

技术标签:

【中文标题】平滑滚动到 div 内的锚点【英文标题】:Smooth scrolling to anchor inside div 【发布时间】:2014-10-26 19:25:30 【问题描述】:

我尝试在 div 内进行平滑滚动,我几乎完成了所有操作,但我遇到了一些问题。当我单击链接滚动移动到位置但滚动偏移量是首页。另一个问题是我可以在同一个链接中单击 2 次并且滚动正在跳跃?

有人知道怎么解决吗?

jsfiddle

JS:

$(document).ready(function()
  $('.m_nav a').click(function()
      $('.marken-box').animate(
          scrollTop: $( $.attr(this, 'href') ).offset().top
      , 300);
      return false;
  );
);

html

<div class="spacer"></div>
<div class="m_nav">
    <a href="#m_a">A</a>
    <a href="#m_b">B</a>
    <a href="#m_c">C</a>
    <a href="#m_d">D</a>
</div>


<div class="marken-box">
    <ul class="marken">
        <li class="slide">
            <span id="m_a">A</span>
        </li>
        <li class="slide">
            <div class="spacer">Lorem</div>
        </li>
        <li class="slide">
            <span id="m_b">B</span>
        </li>
        <li class="slide">
            <div class="spacer">Lorem</div>
        </li>
        <li class="slide">
            <span id="m_c">C</span>
        </li>
        <li class="slide">
            <div class="spacer">Lorem</div>
        </li>
        <li class="slide">
            <span id="m_d">D</span>
        </li>
        <li class="slide">
            <div class="spacer">Lorem</div>
        </li>
    </ul>
</div>

【问题讨论】:

【参考方案1】:

我用过一次.. http://flesler.blogspot.co.il/2007/10/jquerylocalscroll-10.html

如果你喜欢使用插件

【讨论】:

以上是关于平滑滚动到 div 内的锚点的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript 使用原型进行平滑的锚点滚动,并使用href属性进行简单而不引人注目的滚动

JQuery 实现锚点链接之间的平滑滚动

顺畅滚动到顶部

左侧锚点点击滚动到相应位置,并且滚动轴滚动到位置对应的锚点需要高亮,两者冲突bug

如何将 HTML 页面滚动到给定的锚点

滚动到 iframe 中的锚点