html锚链接怎么调整位置,锚点链接跳转后位置上下偏移一定位置方法

请注意,本文编写于 1621 天前,最后修改于 804 天前,其中某些信息可能已经过时。

因为想把评论区改成无限嵌套,css样式只有第二级评论才会缩进,下面的更低级评论都不会缩进,这样就需要在评论内容前加上@XX的字样,然后点击这个字样,可以通过锚点链接跳转到上一级的评论的位置。

效果是这样的:

d2659dff503b6dc6c3fc71dbd90b2769.png

然后问题就来了~点击@测试站点,跳转到第一条评论时候,部分内容被上面的固定导航遮挡住了~

你也许也会遇到这样的问题“固定导航遮挡住锚点跳转后的内容”。我找到了两种解决方法。

纯CSS解决

能用css自然不想用js解决,因为在加载方面,css总是先加载,并且速度很快。

typecho的评论HTML结构是这样的:

我们给comment-body加上css.comment-body {

position: relative;

padding-top: 50px;

margin-top: -50px;

}

/*修复评论跳转定位问题*/

完美兼容chrome和Firefox,其他浏览器未测试。

然而对于我的主题,使用后是这样的效果:

1510538c82ab484a84ed512fd1d97c50.png

可以看出,如果跳转到第二条评论,padding-top 会让第二条评论向下偏移50px,但是把回复按钮给遮挡了!导致回复按钮点击不了。反复调整z-index改变层的顺序,仍然无果(如果有解决方法,盼告知),只好使用js来解决

使用javascript去调整scroll值if (window.location.hash.indexOf('#') >= 0) {

$('html,body').animate({

scrollTop: ($(window.location.hash).offset().top - 50) + "px"

},

300);

}; //主要修复评论定位不准确BUG

$('#comments a[href^=#][href!=#]').click(function() {

var target = document.getElementById(this.hash.slice(1));

if (!target) return;

var targetOffset = $(target).offset().top - 50;

$('html,body').animate({

scrollTop: targetOffset

},

300);

return false;

}); //主要修复评论定位不准确BUG

这样总算解决了,兼容主流浏览器。

handsome下个版本会更新这个问题的。如果你有更好的办法,盼告知~

参考文章

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Vue中解决a标签锚点跳转位置上下偏移方法有很多种,下面我将介绍几种常用的方法。 1. 使用Vue Router的滚动行为功能。在Vue Router中,可以通过设置scrollBehavior属性来控制页面滚动行为。可以通过给目标路由设置一个滚动偏移量来实现锚点跳转时的位置偏移。例如: ```javascript const router = new VueRouter({ mode: 'hash', // 或者其他模式 ... scrollBehavior(to, from, savedPosition) { if (to.hash) { return { selector: to.hash, offset: { x: 0, y: 100 } // 设置纵向偏移量为100px } } } }) ``` 2. 在目标元素上通过ref属性标记,并通过Vue的$refs来操作元素。在Vue的模板中,可以使用ref属性来标记元素,然后可以通过Vue实例的$refs属性来获取到元素的实例,并进行操作。例如: ```html <!-- 模板 --> <a href="#target" @click="scrollToTarget">跳转到目标</a> ... <div ref="target" id="target">目标元素</div> <!-- Vue 实例中的方法 --> methods: { scrollToTarget() { const targetElement = this.$refs.target // 进行滚动操作,可以通过scrollTop属性或者其他滚动方法来控制滚动位置,再加上偏移量即可 } } ``` 3. 使用第三方库来实现滚动行为。除了Vue Router,还有一些第三方库可以用于处理滚动行为,如vue-scrollto、vue-scroll-behavior等。这些库提供了方便的API,可以轻松地控制滚动位置偏移量。可以根据具体需求选择合适的库使用。 总的来说,以上是几种常见的在Vue中解决a标签锚点跳转位置上下偏移方法。具体的使用方式可以根据实际需求选择合适的方法来实现相应的效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值