javascript - 平滑滚动(特定类别除外),但 fontawesome 图标不起作用

标签 javascript jquery

我有这个脚本可以平滑滚动到链接的 anchor ,我不希望带有 fancybox 的图像链接受到影响:

/*======================================
    =         SCROLL TO ANCHOR           =
======================================*/
$(document).on('click', 'a', function(event){
    if (!$(event.target).hasClass('fancybox')) {
        event.preventDefault();

        $('html, body').animate({
            scrollTop: $( $.attr(this, 'href') ).offset().top
        }, 500);
    }
});

这是图像链接的 HTML 结构:

<div class="grid-item grid-item--big">
    <div class="gallery-image">
        <a href="assets/images/tour-view/grid-images/fancybox-1.png" data-fancybox-group="gallery" class="title-hover dh-overlay fancybox"><i class="icons fa fa-eye"></i></a>
        <div class="bg"></div>
    </div>
</div>

该脚本可以在页面上的任何位置以及图像上工作,当我单击它时,脚本就会完成工作,并且不会触发滚动并且会按预期打开 fancybox 图像;除非我点击字体很棒的图标。在这种情况下什么也不会发生。

也许我应该编辑我的脚本,但是如何编辑呢? 任何建议将不胜感激!提前致谢。

最佳答案

我已经解决了使用一个新类并将其仅分配给我想要滚动到的元素。

$(document).on('click', 'a', function(event){
    if ($(event.target).hasClass('btn-book-tour') || $(event.target).hasClass('scrollto')) {
        event.preventDefault();

        $('html, body').animate({
            scrollTop: $( $.attr(this, 'href') ).offset().top
        }, 500);
    }
}); 

关于javascript - 平滑滚动(特定类别除外),但 fontawesome 图标不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43292491/

相关文章:

javascript - 在不知道实际 textNodes 的情况下通过 int offset (start-end) 突出显示 HTML 中的文本

javascript - 使用 strtotime PHP 转换时间

javascript - jquery 添加和删除禁用属性

javascript - FullCalendar不添加任何事件(周 View 、议程 View )

javascript - qTip 文本提示简单插件不起作用

当值 = 0 时,javascript parseInt

javascript - 为什么此代码在 iPad Pro 上不起作用? (JS)

javascript - Vuejs组件路由动态选择

javascript - Javascript 中的递归函数和深度跟踪

jquery - 如何在 Ajax 调用之外使用来自 ajax 成功函数的响应数据