scrollIntoView方法滾動當前元素,進入瀏覽器的可見區域
el.scrollIntoView(); // 等同於el.scrollIntoView(true)
el.scrollIntoView(false);
該方法可以接受一個布爾值作為參數。
如果為true,表示元素的頂部與當前區域的可見部分的頂部對齊(前提是當前區域可滾動);
如果為false,表示元素的底部與當前區域的可見部分的尾部對齊(前提是當前區域可滾動)。
如果沒有提供該參數,默認為true。
錨點定位是一個再熟悉不過的操作了,通常會用a標簽href=#XX去實現,不過這樣做,有一個問題,就是頁面會有刷新感,而且地址欄會有變化,F5刷新,則#XXX還是顯示在地址欄里,這樣如果要進一步進行有關地址欄url的操作,就不得不再做些判斷,所以尋找一些新的方法。如果要求不是很高,scrollIntoView()這個方法就可以取代傳統錨點定位,它是利用滾動原理,來將相應的元素滾動到可是區域內。接下來看看詳細的介紹。
首先需要說明的是,這個方法並沒有寫入標准,但是大多數主流瀏覽器已經支持或部分支持其功能了,所以可以放心使用,當然如果有朝一日標准出來了,那就按標准來吧。其次要說明的是,這是js原生方法,jquery等框架是使用不了的,所以,獲得元素的方法一定是document.getElementById或querySelector,然后才可以點出來scrollIntoView()方法。
官方參數
參數介紹:直接上官方看api介紹比較清晰(https://developer.mozilla.org/zh-CN/docs/Web/API/Element/scrollIntoView)
使用介紹
頁面一定要能滾動,這個方法才會生效,否則,你讓我如何給你滾動呢?
//這個title-part元素將以平滑的滾動方式滾動到與視口底部齊平地方(有兼容性問題)
document.querySelector("#title-part").scrollIntoView({ block: 'end', behavior: 'smooth' }) //這個article-part元素將以平滑的滾動方式滾動到與視口頂部齊平地方(有兼容性問題)
document.querySelector("#article-part").scrollIntoView({ block: 'start', behavior: 'smooth' }) //這個articleMU-part元素將木訥的瞬間滾動到與視口頂部齊平地方(無滾動動畫效果)
document.querySelector("#articleMU-part").scrollIntoView();//默認值就是true,可以不寫 //這個titleMU-part元素將木訥的瞬間滾動到與視口底部齊平地方(無滾動動畫效果)
document.querySelector("#titleMU-part").scrollIntoView(false)