最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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ù)的默認(rèn)值。

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

同時他的參數(shù)也可以配置成一個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兩個參數(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標(biāo)簽,href以#開頭,然后在需要跳轉(zhuǎn)的地方添加一個element,id設(shè)置為a標(biāo)簽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,當(dāng)遇到query參數(shù)的情況,將#miao放到url的最后就行了,其他的也一樣,反正只要把錨點放在url最后就行了,然后進行跳轉(zhuǎn)即可

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

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

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

有的情況,只能使用代碼進行錨點跳轉(zhuǎn),比如從一個頁面跳到另一頁面子組件內(nèi)的指定錨點,這與2.2還是有區(qū)別的,我已經(jīng)試過,如果錨點在子組件內(nèi),不在當(dāng)前路由頁面中,那么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如何解決多個異步請求問題

    vue如何解決多個異步請求問題

    這篇文章主要介紹了vue如何解決多個異步請求問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • Vue自定義彈窗指令的實現(xiàn)代碼

    Vue自定義彈窗指令的實現(xiàn)代碼

    使用vue2.0實現(xiàn)自定義彈窗指令,當(dāng)標(biāo)簽有該指令時,點擊標(biāo)簽可以彈出彈窗。下面通過實例代碼給大家介紹Vue自定義彈窗指令的相關(guān)知識,感興趣的朋友一起看看吧
    2018-08-08
  • Vue使用Vuex一步步封裝并使用store全過程

    Vue使用Vuex一步步封裝并使用store全過程

    這篇文章主要介紹了Vue使用Vuex一步步封裝并使用store全過程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • Vue解析剪切板圖片并實現(xiàn)發(fā)送功能

    Vue解析剪切板圖片并實現(xiàn)發(fā)送功能

    這篇文章主要介紹了Vue解析剪切板圖片并實現(xiàn)發(fā)送功能,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • Vue3性能優(yōu)化之首屏優(yōu)化實戰(zhàn)指南

    Vue3性能優(yōu)化之首屏優(yōu)化實戰(zhàn)指南

    這篇文章主要為大家詳細(xì)介紹了Vue3中進行首屏優(yōu)化的相關(guān)方法,文中的示例代碼講解詳細(xì),具有一定的借鑒價值,有需要的小伙伴可以參考一下
    2025-07-07
  • Vue路由的懶加載深入詳解

    Vue路由的懶加載深入詳解

    這篇文章主要介紹了vue-router路由懶加載及實現(xiàn)方式,路由懶加載的主要作用是將?路由對應(yīng)的組件打包成一個個的js代碼塊,只有在這個路由被訪問到的時候,才會加載對應(yīng)組件的代碼塊,需要的朋友可以參考下
    2022-12-12
  • vue中如何使用math.js

    vue中如何使用math.js

    這篇文章主要介紹了vue中如何使用math.js問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • Vue.js如何利用v-for循環(huán)生成動態(tài)標(biāo)簽

    Vue.js如何利用v-for循環(huán)生成動態(tài)標(biāo)簽

    這篇文章主要給大家介紹了關(guān)于Vue.js如何利用v-for循環(huán)生成動態(tài)標(biāo)簽的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2022-01-01
  • Vue2 的12種組件通訊

    Vue2 的12種組件通訊

    之前文章我們描述給過Vue3 的七通信使用,今天中五篇文章我們再來看看Vue2 的通信使用寫法的相關(guān)資料,需要的朋友可以參考下面文章的具體內(nèi)容
    2021-09-09
  • 用Vue.js實現(xiàn)監(jiān)聽屬性的變化

    用Vue.js實現(xiàn)監(jiān)聽屬性的變化

    響應(yīng)系統(tǒng)是Vue.js的一個顯著功能,修改屬性,可以更新視圖,這讓狀態(tài)管理變得非常簡單且直觀。這篇文章主要給大家介紹如何利用Vue.js實現(xiàn)觀察屬性的變化,有需要的朋友們可以參考借鑒,感興趣的朋友們下面來一起看看吧。
    2016-11-11

最新評論

灵武市| 长白| 勐海县| 樟树市| 双桥区| 南漳县| 仪征市| 石景山区| 梁平县| 商水县| 兴安盟| 平顶山市| 靖边县| 石狮市| 武冈市| 驻马店市| 康定县| 青岛市| 怀远县| 启东市| 宁远县| 利辛县| 哈巴河县| 漳浦县| 建湖县| 成安县| 建湖县| 康平县| 紫金县| 成武县| 紫金县| 米脂县| 顺平县| 东乡族自治县| 项城市| 磐石市| 建宁县| 鹤庆县| 永宁县| 沅江市| 长武县|