Element.scrollIntoView() 方法讓當前的元素滾動到瀏覽器窗口的可視區(qū)域內(nèi)
使用:
????let anchorElement = document.getElementById(anchorName);
????anchorElement.scrollIntoView({block: 'start', behavior: 'smooth'});
behavior可選
定義動畫過渡效果,"auto"或"smooth"之一。默認為"auto"懈糯。
block可選
定義垂直方向的對齊,"start","center","end",?或"nearest"之一慢味。默認為"start"杏死。
inline可選
定義水平方向的對齊,"start","center","end",?或"nearest"之一驮吱。默認為"nearest"应狱。
問題:如果頭部有固定定位導航共郭,就會丟失精度?
如圖:
解決:
let anchorElementHeight = document.getElementById(anchorName).offsetTop;? ?// 要跳轉(zhuǎn)元素到offsetParent頂部的距離
let navBar = document.getElementById('navBar').offsetHeight;? //固定頭部的高度
let nodes = document.getElementById('container');? //跳轉(zhuǎn)元素的父元素
nodes.scrollTo({
top: anchorElementHeight-(navBar),
? ? behavior:"smooth"
});