jquery - 使用 jquery 平滑滚动到不同页面上的特定 div

标签 jquery html

我有一个主菜单,显示在网站的每个页面上。该菜单中的一个链接链接到主页上的特定 div。

我希望当我点击该链接时,它应该滚动到该 div 上方 50 像素。

因此,当我在主页上单击它时,它应该平滑滚动到该特定 div 上方 50 像素。

当我在不同的页面上并单击该链接时,它应该重定向到主页并滚动到该特定 div 上方 50 像素。

我尝试过的代码

    <a href='/#element_id'>Link</a>
$('a').click(function() {
        var divLoc = $('#element_id').offset();
        $('html, body').animate({
          scrollTop: divLoc.top-50}, "slow");
      });

但这仅在我位于主页时有效,因为该特定 div 位于主页上。

我知道如何做到这一点吗?

最佳答案

不使用元素 ID 匹配,只需使用 anchor 标记的名称值即可滚动:

  $('.scroll-anchor').click(function () {
            $('html, body').animate({
                scrollTop: $('[name="' + $.attr(this, 'href').substr(1) + '"]').offset().top
            }, 500);
            return false;
        });

<a class="scroll-anchor" href="#myreusableanchorname">My Resuable scroll for each page</a>

 <a name="myreusableanchorname"></a>

关于jquery - 使用 jquery 平滑滚动到不同页面上的特定 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19807330/

相关文章:

jquery - 包含一系列面板的一页网站,每个面板的大小都是视口(viewport)的大小

javascript - 相对+绝对定位

javascript - jQuery 2.1.0 |增量显示元素

html - 如何在 html 文件中替换为

html - 如何在 Bootstrap 中将图像放入全高列?

jquery - 将函数传递给 .on 出错

javascript - 如何使用 AJAX 和 JQuery 在 div 中加载 html 页面

javascript - 为什么这些警报成倍增加?

html - CSS:堆叠顺序问题

javascript - 页面加载时删除父div?