jQuery If 语句仅适用于平滑滚动

jQuery If Statements Only Working For Smooth Scrolling

本文关键字:平滑 滚动 适用于 If 语句 jQuery      更新时间:2023-09-26

在我的代码中,我有一个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 页面加载。

平滑滚动到页脚可以完美地工作。尽管两个按钮使用的代码完全相同,但滚动到标题的链接不起作用。思潮?

由于我们看不到html,因此很难说出了什么问题,但是您的代码很好。在这里你可以检查什么:

1 - 确保菜单作为 id primaryMenu

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

3 - 确保页脚链接作为类smoothScroll父级

祝你好运。