jQuery如果语句仅用于平滑滚动

时间:2014-12-10 15:17:53

标签: javascript jquery smooth-scrolling

在我的代码中,我有一个jQuery函数,当用户单击具有某个类名的链接时调用该函数(任何给定页面上有两个这样的链接)。一个是平滑滚动到网站的页脚。另一种是平滑滚动回顶部。它们属于同一个功能,但只有滚动到页脚的链接才有效。

function smoothScrolling() {
  $(".smoothScroll a").click(function(e) {
    var $scrolltype = $(this).attr("data-scrolltype");
    e.preventDefault();

    console.log("Scrolling to " + $scrolltype + "...");

    if($scrolltype === 'footer') {
      $('html, body').animate({
        scrollTop: $(".app__footer").offset().top
      }, 2000);
    } if($scrolltype === 'header') {
      $('html, body').animate({
        scrollTop: $("#primaryMenu").offset().top
      }, 2000);
    }

    return false;
  });
}
smoothScrolling();

preventDefault();return false用于阻止加载Ajax页面。

页脚的平滑滚动效果非常好。尽管与两个按钮使用的代码完全相同,但滚动到标题的链接不起作用。想法?

1 个答案:

答案 0 :(得分:1)

由于我们没有看到HTML,因此很难说出错误但代码没问题。在这里你可以检查:

1 - 确保菜单为ID primaryMenu

2 - 确保页脚中的链接为data-scrolltype="header"

3 - 确保页脚链接为smoothScroll

的父级链接 祝你好运。