【问题标题】:jQuery scoll animation not working for iconjQuery滚动动画不适用于图标
【发布时间】:2019-07-27 21:00:18
【问题描述】:

我成功地实现了一个 jQuery 动画来调整我的导航链接的固定标题的偏移量。但是,我添加了一个 Font Awesome 图标,该图标链接到与导航链接之一相同的部分(ID 为 #about)。当我单击该图标时,什么也没有发生,但单击导航链接会应用 jQuery 偏移量。

这是 jQuery:

let sectionId;

$('.nav-link, .chevron').click((e) => {
  sectionId = $(e.target).attr('href');
  $('html, body').animate({
    scrollTop: $(sectionId).offset().top - 20
  }, 100);
});

HTML -- jQuery 与此一起使用:

<a class="nav-link px-4" href="#about">ABOUT</a>

但不是为了这个(页面下方):

<a class="chevron" href="#about">
  <i class="fas fa-chevron-down fa-3x text-white"></i>
</a>

我怀疑这与在 nav-linkchevron 类中引用具有相同 ID #abouthref 有关。如果是这样,有没有办法解决它?

【问题讨论】:

    标签: jquery


    【解决方案1】:

    使用$(e.currentTarget)

    e.target 是触发事件调度程序触发的对象,e.currentTarget 是您分配侦听器的对象。

    let sectionId;
    $('.nav-link, .chevron').click((e) => {
      e.preventDefault();
      sectionId = $(e.currentTarget).attr('href');
      $('html, body').animate({
        scrollTop: $(sectionId).offset().top - 20
      }, 100);
    });
    

    【讨论】:

    • 我还建议在函数顶部使用e.preventDefault(),以防止页面在动画期间跳转。
    猜你喜欢
    • 1970-01-01
    • 2013-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-21
    • 2012-01-15
    • 2018-03-08
    相关资源
    最近更新 更多