element.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'start' })
二、另一个滚动方案
您可以使用scrollTop
代替scrollIntoView()
:
var target = document.getElementById("target");
target.parentNode.scrollTop = target.offsetTop;
如果要滚动的滚动元素不止一个,则需要根据中间元素的offsetTop
s分别更改每个滚动元素scrollTop
。 这应该为您提供细粒度的控制,以避免出现问题。
编辑:offsetTop不一定相对于父元素-它相对于第一个定位的祖先。 如果父元素未定位(相对,绝对或固定),则可能需要将第二行更改为:
target.parentNode.scrollTop = target.offsetTop - target.parentNode.offsetTop;
三、...
var el = document.querySelector("yourElement");
window.scroll({top: el.offsetTop, behavior: 'smooth'});