色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

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

瀏覽:6日期:2022-06-12 18:56:23
目錄vue實(shí)現(xiàn)錨點(diǎn)跳轉(zhuǎn):scrollIntoView()說明:使用案例:vue錨點(diǎn)跳轉(zhuǎn)的三種方式(頁(yè)內(nèi)跳轉(zhuǎn),跨頁(yè)跳轉(zhuǎn),函數(shù)跳轉(zhuǎn))1.需求2.跳轉(zhuǎn)錨點(diǎn)的基本方式2.1 頁(yè)面內(nèi)通過點(diǎn)擊來跳轉(zhuǎn)2.2 從A頁(yè)面跳轉(zhuǎn)到B頁(yè)面的指定錨點(diǎn)(錨點(diǎn)就在頁(yè)面上,不在子組件中)2.3 直接使用代碼進(jìn)行錨點(diǎn)跳轉(zhuǎn)vue實(shí)現(xiàn)錨點(diǎn)跳轉(zhuǎn):scrollIntoView()說明:

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

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()簡(jiǎn)單實(shí)現(xiàn)了一個(gè)錨點(diǎn)跳轉(zhuǎn),下邊講解scrollIntoView中的一些屬性:

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

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

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

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

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

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

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

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

2.跳轉(zhuǎn)錨點(diǎn)的基本方式2.1 頁(yè)面內(nèi)通過點(diǎn)擊來跳轉(zhuǎn)

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

<a >去找喵星人</a><h3 id='miao'>喵星人基地</h3>2.2 從A頁(yè)面跳轉(zhuǎn)到B頁(yè)面的指定錨點(diǎn)(錨點(diǎn)就在頁(yè)面上,不在子組件中)

我用的vue,所以在vue路由跳轉(zhuǎn)時(shí)只要在path后面加上#錨點(diǎn)就可以了,比如我要跳到B頁(yè)面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單頁(yè)使用的是hash模式,以#作為路由分割標(biāo)識(shí)符,就會(huì)導(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è)頁(yè)面跳到另一頁(yè)面子組件內(nèi)的指定錨點(diǎn),這與2.2還是有區(qū)別的,我已經(jīng)試過,如果錨點(diǎn)在子組件內(nèi),不在當(dāng)前路由頁(yè)面中,那么2.2的方式并不會(huì)起作用。解決方法:將錨點(diǎn)作為query屬性,或者其他的方式,將錨點(diǎn)的值傳給B頁(yè)面,然后B頁(yè)面再通過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)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: JavaScript
主站蜘蛛池模板: 九一福利视频 | 日本 片 成人 在线 日本68xxxxxxxxx老师 | 亚洲精品久久九九精品 | 亚洲高清自拍 | 国产三级在线观看视频 | 中文字幕一区二区在线播放 | 国产精品成人久久久久久久 | 亚洲国产一区二区三区在线观看 | 中文字幕s级优女区 | 久色视频在线观看 | 精品亚洲永久免费精品 | 欧美一级一毛片 | 精品视频一区二区三区免费 | 国产精品亚洲一区二区在线观看 | 亚洲精品高清在线 | 亚洲综合第一欧美日韩中文 | 国产在线精品一区免费香蕉 | 91福利精品老师国产自产在线 | 欧美精品videos| 国产小说 | 中文字幕在线视频精品 | 最近中文字幕在线 | 中文 | 国产成人精品一区二三区在线观看 | 亚洲第一成人天堂第一 | 九九国产在线观看 | 最新国产一区二区精品久久 | 国产一级一片免费播放刺激 | 国产成人免费视频精品一区二区 | 日韩美女免费视频 | 朝鲜一级毛片 | 美女张开腿给男人捅 | 亚洲国产天堂久久综合图区 | 香港日本韩国三级网站 | 欧美大胆a | 久久久网站亚洲第一 | 国产91精品一区二区视色 | 亚洲国产观看 | 国产精彩视频在线 | 毛片在线看网站 | 一级做a毛片在线看 | 成人在线免费观看网站 |