我刚刚在博客中添加了一个从上到下的按钮, <a href='#top'...
我遇到了一个烦人的行为,在其他网站的“自上而下”按钮中看不到:
#top
后缀添加到URL -我得到这一个,但我想改变它,所以它不会影响到原来的URL。我试图将此处建议的代码-https: //stackoverflow.com/a/20198758/1692261-放入我的head
标签中,但效果为0。
编辑:我在这里添加了另一个要求-我想仅针对该按钮禁用上述行为。将来,我可能会在这里和那里使用锚,并且希望发生原始行为。这是否可能,或者必须全部禁止还是全部允许?
Window.scroll()方法应该可以为您工作。
https://developer.mozilla.org/zh-CN/docs/Web/API/Window/scroll
window.scroll()方法对网址没有任何影响。它只是告诉窗口滚动到特定坐标(上:y,左:x)
代替使用anchor标签,向按钮添加一个eventListener,该事件将触发Window.scroll()
button.addEventListener("click", function () {
window.scroll({
top: 0,
left: 0,
behavior: 'smooth'
});
});
您可以使用以下方法计算window.scroll()目标相对于body元素的确切位置:
const bodyRect = document.body.getBoundingClientRect(),
elemRect = element.getBoundingClientRect(),
offset = elemRect.top - bodyRect.top;
然后将计算出的偏移量用作window.scroll()中的最大值
window.scroll({
top: offset,
left: 0,
behavior: 'smooth'
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句