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

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

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

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

說明:

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

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

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

使用案例:

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

js部分

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

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

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

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

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

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

其中smooth是平滑滾動 start和end是目標(biāo)滾動到的位置

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

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

1.需求

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

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

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

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

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

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

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

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

注意:因?yàn)槟J(rèn)的vue單頁使用的是hash模式,以#作為路由分割標(biāo)識符,就會導(dǎo)致有歧義而無法正常達(dá)到需求,如果你又不想使用history模式,那么就使用2.3的方式,使用代碼進(jìn)行錨點(diǎn)跳轉(zhuǎn)

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

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

// 這是傳到組件中的數(shù)據(jù)
?props: {
? ? ? commentId: String
? }
? mounted () {
? // 判斷commentId 是否有值,如果沒有的話,就不進(jìn)行跳轉(zhuǎn),我這里就用'null'來判斷了,你們隨意
? // document.querySelector用來獲取element,有個(gè)坑,id值不能全為數(shù)字,否則報(bào)錯(cuò),所以我在id值前面加了id,id格式大致是:id123456
? // scrollIntoView就是用來跳轉(zhuǎn)到錨點(diǎ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實(shí)現(xiàn)錨點(diǎn)跳轉(zhuǎn) scrollIntoView()的文章就介紹到這了,更多相關(guān)vue錨點(diǎn)跳轉(zhuǎn) scrollIntoView()內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

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

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

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

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

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

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

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

    VNode虛擬節(jié)點(diǎn)實(shí)例簡析

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

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

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

    詳解@Vue/Cli 3 Invalid Host header 錯(cuò)誤解決辦法

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

    在Vue中使用icon 字體圖標(biāo)的方法

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

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

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

    vue項(xiàng)目中使用天地圖的簡單代碼示例

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

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

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

最新評論