實現錨點跳轉的兩種方式及注意事項


1、使用純html方式實現錨點跳轉

1、設置錨點:添加錨點id demoAnchor
<div>
    <div id="demoAnchor">視頻內容。。。</div>
</div>


2、設置錨點跳轉點擊鏈接 #demoAnchor
<div>
    <a href="#demoAnchor">點我跳轉</a>
</div>



缺點:
1、此方式跳轉后會替換路由里#后面的部分。網站用hash路由的請避免使用此方式,網站用history路由的可使用
2、不可控制展示位置,此方式跳轉錨點后,錨點元素的頂部與瀏覽器窗口頂部是齊平的(如圖)

2、使用js方式實現錨點跳轉

1、設置錨點(同上):添加錨點id demoAnchor
<div>
    <div id="demoAnchor">視頻內容。。。</div>
</div>


2、設置錨點跳轉點擊事件,並傳入錨點id
<div>
    <div @click="goAnchorPoint('demoAnchor')">點我跳轉</div>
</div>


goAnchorPoint(elemId){
    let anchorH = document.getElementById(elemId).offsetTop

    if(document.documentElement.scrollTop){
        document.documentElement.scrollTop=anchorH
    }else if(document.body.scrollTop){
        document.body.scrollTop=anchorH
    }else{  //這個else指以上兩種值均為0的狀態,有一者是恆為0的,另一者可能因為回到頂部等操作被置為0,便會出現這種狀況
        document.documentElement.scrollTop=anchorH
        document.body.scrollTop=anchorH
    }

    //window.scrollTo(0,anchorH)  //若以上scrollTop方式不生效,可使用此scrollTo方式,但注意scrollTo在安卓手機上存在兼容性問題
}



優點:
1、無hash路由#后面內容被替換的問題
2、可通過如 anchorH = document.getElementById(elemId).offsetTop - 50 設置展示位置,以使得跳轉錨點后,錨點元素位於瀏覽器窗口中間,提高用戶體驗(如圖)

了解scrollTo和scrollTop:  https://www.cnblogs.com/huihuihero/p/12092038.html


免責聲明!

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



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