栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

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

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;});


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/415912.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号