当前位置: 首页 > 面试题库 >

JavaScript单击锚点链接时平滑滚动

堵雅健
2023-03-14
问题内容

我的页面上有几个超链接。用户访问我的帮助部分时将阅读的常见问题解答。

使用锚点链接,我可以使页面滚动到锚点并在那里引导用户。

有没有办法使滚动平滑?

但是请注意,他正在使用自定义JavaScript库。也许jQuery提供了类似的功能?


问题答案:

现在有一种本地方法可以做到这一点:

document.querySelectorAll('a[href^="#"]').forEach(anchor => {
    anchor.addEventListener('click', function (e) {
        e.preventDefault();

        document.querySelector(this.getAttribute('href')).scrollIntoView({
            behavior: 'smooth'
        });
    });
});

当前仅最先进的浏览器才支持此功能。

对于较旧的浏览器支持,可以使用以下jQuery技术:

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

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

如果您的目标元素没有ID,并且您正在通过ID链接到它name,请使用以下命令:

$('a[href^="#"]').click(function () {
    $('html, body').animate({
        scrollTop: $('[name="' + $.attr(this, 'href').substr(1) + '"]').offset().top
    }, 500);

    return false;
});

为了提高性能,您应该缓存$('html, body')选择器,以便它不会在 每次 单击定位器时都运行:

var $root = $('html, body');

$('a[href^="#"]').click(function () {
    $root.animate({
        scrollTop: $( $.attr(this, 'href') ).offset().top
    }, 500);

    return false;
});

如果您希望更新URL,请在animate回调中进行操作:

var $root = $('html, body');

$('a[href^="#"]').click(function() {
    var href = $.attr(this, 'href');

    $root.animate({
        scrollTop: $(href).offset().top
    }, 500, function () {
        window.location.hash = href;
    });

    return false;
});


 类似资料:
  • 问题内容: 有没有一种方法可以使用jQuery向下滚动到锚链接? 喜欢: ? 问题答案: 这是我的方法: 然后,您只需要像这样创建锚:

  • 我需要一些帮助如何保持保持当前锚链接活动后刷新页面。实际上,我有这个垂直的navbar菜单(http://prntscr.com/fz9yct),默认情况下,我将类active添加到中,所以当我们打开页面时,navbar看起来就像您在屏幕截图中看到的那样。 当我滚动,或单击任何其他navbar列表项,一切工作良好,平滑滚动到适当的部分,并删除类活动从上一个锚链接,并添加到适当的。 问题是当我刷新p

  • 问题内容: 我正在使用python的机械化模块导航网站,并且无法单击下一页的javascript链接。我做了一些阅读,有人建议我需要python- spidermonkey和DOMforms。我设法通过不知道实际单击链接的语法来安装它们。 我可以将页面上的代码标识为: 有人知道如何单击吗?或者也许还有另一种工具。 谢谢 问题答案: 对于这些用例,我主要在jython下使用HtmlUnit。我还发表

  • 问题内容: 我正在FireFox中使用Selenium的IDE进行一些测试,我希望Selenium单击第二个链接(Text2)。知道我该怎么做吗?不幸的是,我无权访问HTML并且无法对其进行修改。记录功能似乎没有注册点击。 该代码附在下面。提前致谢! 问题答案: 硒也支持定位器。如果您知道确切的链接文本,则可以使用此定位器,但不能使用其他定位器。因此,对于上述示例:或。(有关其他定位器,请参见此网

  • 问题内容: 当我有一个链接到jQuery或JavaScript事件的链接时,例如: 如何防止页面滚动到顶部?当我从锚点移除href属性时,页面不会滚动到顶部,但链接似乎不可点击。 问题答案: 您需要防止发生click事件的默认操作(即,导航到链接目标)。 有两种方法可以做到这一点。 选项1: 调用传递给处理程序的事件对象的方法。如果您使用jQuery绑定处理程序,则该事件将是的实例,并且将是的jQ

  • 本文向大家介绍微信小程序scroll-view锚点链接滚动跳转功能,包括了微信小程序scroll-view锚点链接滚动跳转功能的使用技巧和注意事项,需要的朋友参考一下 html  js  css  总结 以上所述是小编给大家介绍的微信小程序scroll-view锚点链接滚动跳转功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对呐喊教程网站的支持! 如