使用Handlebars和NodeJS实现从其他页面跳转到首页指定id锚点区域的方法
解决方案
- 首先修改复用导航栏的链接写法:你的导航栏模板存放在
/public/views/partials目录下,直接找到对应导航的hbs文件,把原来的href="#about-me-ID"替换为href="/#about-me-ID",「联系我」按钮同理替换为href="/#你的联系板块ID"即可。
该写法是浏览器原生支持的标准跨页锚点跳转规则,和你使用的Handlebars模板引擎没有冲突,Handlebars最终会将该属性渲染为标准的HTML链接,无需额外适配。不管用户当前处于站点的哪个页面,点击后都会先跳转到首页,页面加载完成后自动滚动到对应id的板块。 - 注意确认index.hbs中对应板块的id和锚点完全匹配,注意大小写、特殊符号不要写错即可。
- 如果需要实现平滑滚动效果,可在index.hbs的全局样式中添加以下代码:
html { scroll-behavior: smooth; }
如果你的首页不是站点根路径,只需要将链接中的/替换为首页的实际路径即可,例:首页路径为/home则写为href="/home#about-me-ID"。
内容的提问来源于stack exchange,提问作者Tasi Tele
相关产品推荐
相关产品推荐

