js 實現錨點跳轉示例解析
背景
由于使用wujie微前端集成子應用,子應用里面的某個頁面內部是用a標簽做錨點跳轉的,集成之后,錨點跳轉就失效了
問題排查
找到原因是因為點擊a標簽跳轉后,會將#錨點直接拼接在了主應用的url上面了,導致子應用不識別,獲取不到,所以跳轉失效,所以這種跳轉方式就行不通,下面介紹一種通過js實現錨點跳轉
具體實現
通過scrollIntoView方法實現錨點跳轉,用法實例
let element = document.getElementById("anchor"); //獲取到元素,然后使用scrollIntoView()方法就可以滾動到element元素所在位置 element.scrollIntoView(); 不顯示聲明任何參數,相當于是element.scrollIntoView(true) element.scrollIntoView(false); element.scrollIntoView({block: "end"}); element.scrollIntoView({behavior: "smooth", block: "center", inline: "nearest"});
參數解析
可選參數為Boolean或者更為詳細的Object
當參數為Boolean值的時候
如果為true,選中的元素會與可視區(qū)域最上端平齊(在滾動條可動范圍內)(默認)
如果為false,選中的元素會與可視區(qū)域最下端齊平(在滾動條可動范圍內)
當參數為Object的時候
對象參數中含有三個屬性:behavior, block, inline
behavior:定義了元素滾動的行為,instant代表是立即滾動元素,smooth代表動畫性的平滑滾動,但大部分瀏覽器并不支持smooth這個屬性值,一般都是 instant。
block:定義了元素滾動的方向,對應Boolean類型參數,如果設置了start值,則相當于是設置了element.scrollIntoView(true),如果設置了end值,則相當于是設置了element.scrollIntoView(false)
inline inline屬性定義水平方向的對齊設置 默認為nearest 可選start, end, nearest, center 。由于水平方向的滾動條一般不會使用,因此保持在start就好。
以上就是js 實現錨點跳轉示例解析的詳細內容,更多關于js 錨點跳轉的資料請關注腳本之家其它相關文章!
相關文章
js 將input框中的輸入自動轉化成半角大寫(稅號輸入框)
本文主要介紹了稅號輸入框:將input框中的輸入自動轉化成半角大寫的方法,具有很好的參考價值,下面跟著小編一起來看下吧2017-02-02