js 錨點定位的簡單方法


使用scrollIntoView方法進行定位到某一位置

這里直接開門見山,最近在segmentfault中看到了這個簡單方法,就是用scrollIntoView方法就可以實現錨點定位,非常簡單,在此記錄一下

可以直接使用(當然像在vue中也可以使用ref獲取dom)

// 如果為true,元素的頂端將和其所在滾動區的可視區域的頂端對齊。
// 如果為false,元素的底端將和其所在滾動區的可視區域的底端對齊。
document.querySelector('#需要定位的ID').scrollIntoView(true)

也可以配置參數定位的位置和動畫效果

document.querySelector('#需要定位的ID').scrollIntoView({
  behavior: "smooth", // 定義動畫過渡效果, "auto"或 "smooth" 之一。默認為 "auto"
  block: "center", // 定義垂直方向的對齊, "start", "center", "end", 或 "nearest"之一。默認為 "start"
  inline: "nearest" // 定義水平方向的對齊, "start", "center", "end", 或 "nearest"之一。默認為 "nearest"
})

傳統的錨點定位

html本身就有錨點定位的功能,在html頁面內可以設置錨點,通過a鏈接進行跳轉即可

如html中定義一個錨點,這里可以用name或者id

<ul>
  <li id="anchor1">錨點1</li>
  <li id="anchor2">錨點2</li>
  <li id="anchor3">錨點3</li>
</ul>

錨點使用

<a href="#anchor1">跳至第一個錨點</a>

在js中可以通過location跳轉

window.location.href = "#anchor1" // 跳至第一個錨點
// 或者
window.location.hash = "#anchor1" // 跳至第一個錨點

注意:hash只會在跳轉到此頁面的第一次起作用,再次刷新此頁面將不起作用,而href始終起作用


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM