欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue實現(xiàn)錨點跳轉(zhuǎn)scrollIntoView()使用案例

 更新時間:2023年07月12日 11:29:57   作者:遙遠的救世主○  
這篇文章主要介紹了vue實現(xiàn)錨點跳轉(zhuǎn)scrollIntoView()使用案例,文中結(jié)合實例代碼介紹了vue錨點跳轉(zhuǎn)的三種方式(頁內(nèi)跳轉(zhuǎn),跨頁跳轉(zhuǎn),函數(shù)跳轉(zhuǎn)),需要的朋友可以參考下

vue實現(xiàn)錨點跳轉(zhuǎn):scrollIntoView()

說明:

滾動到某個特定元素 :scrollIntoView();例如form表單或者div滾動到底部,

document.getElementsByClassName(‘’)或者document.getElementsById(‘’)

獲取到元素后即可實現(xiàn)回到可視化區(qū)域(也可理解為回到頂部)。

使用案例:

<div> v-for="(value,index) in data" class="roll">{{...}}</div>  

js部分

methods:{
  scrollToPosition(index){
     document.getElementsByClassName('roll')[index].scrollIntoView()
}

這樣就利用scrollIntoView()簡單實現(xiàn)了一個錨點跳轉(zhuǎn),下邊講解scrollIntoView中的一些屬性:

scrollIntoView(true)相等于scrollIntoView();元素的頂端將和其所在滾動區(qū)的可視區(qū)域的頂端對齊為true時相應(yīng)的 scrollIntoViewOptions: {block: “start”, inline:“nearest”}。這是這個參數(shù)的默認值。

scrollIntoView(false)元素的底端將和其所在滾動區(qū)的可視區(qū)域的底端對齊為false時相應(yīng)的scrollIntoViewOptions: {block: “end”, inline: “nearest”}。

同時他的參數(shù)也可以配置成一個object對象

  scrollIntoView({
  behavior:auto //定義動畫過渡效果"auto"或 "smooth" 之一。默認為 "auto"。
  block:start//定義垂直方向的對齊, "start", "center", "end", 或 "nearest"之一。默認為 "start"。
  inline:nearest//"start", "center", "end", 或 "nearest"之一。默認為 "nearest"。
  })

其中smooth是平滑滾動 start和end是目標滾動到的位置

注意:兼容性的問題多數(shù)主流瀏覽器已經(jīng)支持其基本功能,也就是說,使用true,false兩個參數(shù),來實現(xiàn)木訥的定位(沒有滾動動畫)是沒有任何問題的,但是傳入object參數(shù)時,IE各種版本會直接忽略,全部看成true參數(shù)屬性,如果想看到滾動動畫,使用火狐和chrome。

vue錨點跳轉(zhuǎn)的三種方式(頁內(nèi)跳轉(zhuǎn),跨頁跳轉(zhuǎn),函數(shù)跳轉(zhuǎn))

1.需求

最近遇到一個需求,需要從一個頁面跳到另一個頁面的指定錨點,如果是頁面上的錨點還簡單,但是那個錨點在頁面的組件里面。所以稍微研究了一下

2.跳轉(zhuǎn)錨點的基本方式

2.1 頁面內(nèi)通過點擊來跳轉(zhuǎn)

即添加一個a標簽,href以#開頭,然后在需要跳轉(zhuǎn)的地方添加一個element,id設(shè)置為a標簽href屬性相同的值,只是不要#,就可以了,這是最簡單的方式

<a href="#miao">去找喵星人</a>
<h3 id="miao">喵星人基地</h3>

2.2 從A頁面跳轉(zhuǎn)到B頁面的指定錨點(錨點就在頁面上,不在子組件中)

我用的vue,所以在vue路由跳轉(zhuǎn)時只要在path后面加上#錨點就可以了,比如我要跳到B頁面id為miao的錨點,那么path=xxxx?#miao,當遇到query參數(shù)的情況,將#miao放到url的最后就行了,其他的也一樣,反正只要把錨點放在url最后就行了,然后進行跳轉(zhuǎn)即可

?this.$router.push({
? ? ? ? ? ? path: `/detail?#miao`,
? ? ? ? ? ? query: {
? ? ? ? ? ? ? comment: `${commentId}`
? ? ? ? ? ? }
? ? ? ? ? })

注意:因為默認的vue單頁使用的是hash模式,以#作為路由分割標識符,就會導致有歧義而無法正常達到需求,如果你又不想使用history模式,那么就使用2.3的方式,使用代碼進行錨點跳轉(zhuǎn)

2.3 直接使用代碼進行錨點跳轉(zhuǎn)

有的情況,只能使用代碼進行錨點跳轉(zhuǎn),比如從一個頁面跳到另一頁面子組件內(nèi)的指定錨點,這與2.2還是有區(qū)別的,我已經(jīng)試過,如果錨點在子組件內(nèi),不在當前路由頁面中,那么2.2的方式并不會起作用。解決方法:
將錨點作為query屬性,或者其他的方式,將錨點的值傳給B頁面,然后B頁面再通過props的方式傳給他的子組件,最后在子組件中使用代碼進行錨點跳轉(zhuǎn)

// 這是傳到組件中的數(shù)據(jù)
?props: {
? ? ? commentId: String
? }
? mounted () {
? // 判斷commentId 是否有值,如果沒有的話,就不進行跳轉(zhuǎn),我這里就用'null'來判斷了,你們隨意
? // document.querySelector用來獲取element,有個坑,id值不能全為數(shù)字,否則報錯,所以我在id值前面加了id,id格式大致是:id123456
? // scrollIntoView就是用來跳轉(zhuǎn)到錨點的函數(shù)
? ? ? ? if (this.commentId !== 'null') {
? ? ? ? ? let inter = setInterval(() => {
? ? ? ? ? ? let target = document.querySelector(`#id${this.commentId}`)
? ? ? ? ? ? if (target) {
? ? ? ? ? ? ? clearInterval(time)
? ? ? ? ? ? ? target.scrollIntoView()
? ? ? ? ? ? }
? ? ? ? ? },100)
? ? ? ? }
? ? },

到此這篇關(guān)于vue實現(xiàn)錨點跳轉(zhuǎn) scrollIntoView()的文章就介紹到這了,更多相關(guān)vue錨點跳轉(zhuǎn) scrollIntoView()內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue中使用Scss實現(xiàn)配置、切換主題方式

    Vue中使用Scss實現(xiàn)配置、切換主題方式

    這篇文章主要介紹了Vue中使用Scss實現(xiàn)配置、切換主題方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • Vue使用Axios和elementui實現(xiàn)查詢分頁功能

    Vue使用Axios和elementui實現(xiàn)查詢分頁功能

    當今的Web開發(fā)趨勢中,前后端分離已經(jīng)成為一種流行的架構(gòu)模式,它將前端和后端的開發(fā)分離開來,使得前端和后端可以獨立進行開發(fā)和部署,本文給大家介紹了Vue使用Axios和elementui實現(xiàn)查詢分頁功能,需要的朋友可以參考下
    2024-06-06
  • vue中防抖和節(jié)流的使用方法

    vue中防抖和節(jié)流的使用方法

    防抖和節(jié)流是我們在開發(fā)過程中常用優(yōu)化性能的方式,可以減少不必要的計算,不浪費資源,只在適合的時候再進行觸發(fā)計算,這篇文章主要給大家介紹了關(guān)于vue中防抖和節(jié)流使用的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • VNode虛擬節(jié)點實例簡析

    VNode虛擬節(jié)點實例簡析

    這篇文章主要介紹了VNode虛擬節(jié)點,結(jié)合實例形式分析了VNode虛擬節(jié)點的基本功能、原理與實現(xiàn)方法,需要的朋友可以參考下
    2023-06-06
  • vue動態(tài)代理無須重啟項目解決方案詳解

    vue動態(tài)代理無須重啟項目解決方案詳解

    這篇文章主要為大家介紹了vue動態(tài)代理無須重啟項目解決方案詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09
  • 詳解@Vue/Cli 3 Invalid Host header 錯誤解決辦法

    詳解@Vue/Cli 3 Invalid Host header 錯誤解決辦法

    這篇文章主要介紹了詳解@Vue/Cli 3 Invalid Host header 錯誤解決辦法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • 在Vue中使用icon 字體圖標的方法

    在Vue中使用icon 字體圖標的方法

    這篇文章主要介紹了在Vue中使用icon 字體圖標的方法,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-06-06
  • 前端配合后端實現(xiàn)Vue路由權(quán)限的方法實例

    前端配合后端實現(xiàn)Vue路由權(quán)限的方法實例

    一開始我還以為vue的路由只能用在工程化的項目里面,其實不然,下面這篇文章主要給大家介紹了關(guān)于前端配合后端實現(xiàn)Vue路由權(quán)限的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-05-05
  • vue項目中使用天地圖的簡單代碼示例

    vue項目中使用天地圖的簡單代碼示例

    這篇文章主要給大家介紹了關(guān)于vue項目中使用天地圖的相關(guān)資料,在Vue.js項目中使用天地圖,首先需要申請apikey并在index.html中引入天地圖的js文件,然后創(chuàng)建一個div元素作為地圖容器,并通過CSS設(shè)置其樣式,需要的朋友可以參考下
    2024-11-11
  • Vue中使用h5 Plus的實現(xiàn)方法

    Vue中使用h5 Plus的實現(xiàn)方法

    這篇文章主要介紹了Vue中使用h5 Plus的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10

最新評論