javascript - 使用状态栏上没有链接的平滑滚动

标签 javascript jquery html smooth-scrolling anchor-scroll

我为我的大学启动了一个新项目,但我的代码有问题。

当我使用“平滑滚动”转到另一个 anchor 时,状态栏上会显示#name_of_the_anchor 链接。

平滑滚动仅在我使用“a href”时才起作用,因此状态栏将显示每个 div 的链接。

Javascript:

$(document).ready(function(){
    $('a[href^="#"]').on('click',function (e) {
        e.preventDefault();

        var target = this.hash,
        $target = $(target);

        $('html, body').stop().animate({
        'scrollLeft': $target.offset().left
        }, 400, 'swing');
    });
});

如何更改此代码以不在状态栏上显示链接,但在我的网站上保持平滑滚动?谢谢你们,伙计们!

最佳答案

您可以对链接执行类似的操作:

<a href="javascript:;" data-target="#anchor-name">My Link</a>

然后用 JavaScript 做类似的事情

$(document).ready(function(){
    $('a[data-darget]').on('click', function (e) {
        e.preventDefault();

        var target = $(this).data('target'),
        $target = $(target);

        $('html, body').stop().animate({
           'scrollLeft': $target.offset().left
        }, 400, 'swing');
    });
});

这会阻止默认浏览器行为。但这实际上并不是最好的方法,因为如果 JavaScript 无论如何都无法运行(即,如果用户禁用了 JS 或其他原因阻止了脚本运行),则不会有任何故障恢复。

关于javascript - 使用状态栏上没有链接的平滑滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33201016/

相关文章:

javascript - 在数组中生成没有任何重复数字的随机数

javascript - 为什么它不是一个 React 函数

javascript - jQuery/JS/PHP - 仅在提交后禁用表单和提交按钮

html - Dropup Bootstrap (v3.3.7) 固定在底部时切换菜单

javascript - 如何在 AJAX POST 后重新加载 View

html - 解析错误 : Unexpected end tag - How to clean html tags?

javascript - res.sendFile 不是函数 Node.js

javascript - 逐步淡入淡出无限滚动添加元素

javascript - Ajax 调用仅在第一行之后加载数据

javascript - 如何从内容页Angular JS(Ionic Framework)调用函数?