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

vue中遇到scrollIntoView無(wú)效問(wèn)題及解決

 更新時(shí)間:2023年05月19日 09:56:40   作者:°折月煮酒  
這篇文章主要介紹了vue中遇到scrollIntoView無(wú)效問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

vue中遇到scrollIntoView無(wú)效

官方文檔寫的簡(jiǎn)單

Element 接口的scrollIntoView()方法會(huì)滾動(dòng)元素的父容器,使被調(diào)用scrollIntoView()的元素對(duì)用戶可見(jiàn)。

語(yǔ)法:

element.scrollIntoView(); // 等同于element.scrollIntoView(true)
element.scrollIntoView(alignToTop);// Boolean型參數(shù)
element.scrollIntoView(scrollIntoViewOptions);// Object型參數(shù)

首先容器滾動(dòng),然后document.geyElementById或者document.querySelector 獲取指定元素,最夠元素調(diào)用scrollIntoView.

參數(shù):

  • alignToTop可選

一個(gè)Boolean值:

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

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

  • scrollIntoViewOptions 可選

一個(gè)包含下列屬性的對(duì)象:

  • behavior 可選

定義動(dòng)畫過(guò)渡效果, "auto"或 "smooth"之一。默認(rèn)為"auto"。

  • block 可選

定義垂直方向的對(duì)齊,"start","center","end", 或 "nearest"之一。默認(rèn)為 “start”。

  • inline 可選

定義水平方向的對(duì)齊, "start", "center","end", 或 "nearest"之一。默認(rèn)為 “nearest”。

實(shí)際在vue項(xiàng)目中遇到,當(dāng)通過(guò)點(diǎn)擊事件調(diào)用子組件的元素滾動(dòng)到可視區(qū)域時(shí)怎樣都無(wú)效。

最終發(fā)現(xiàn),這個(gè)方法還有一個(gè)限制:需要頁(yè)面完全加載后再調(diào)用

這樣,在vue中可以使用$nextTick函數(shù),確保頁(yè)面已渲染完成在去調(diào)scrollIntoView使?jié)L動(dòng)到可視區(qū)域

實(shí)現(xiàn)代碼如下

父組件:

showDatePicker(){
? if (this.$refs.pickers) {
? ? ? ? this.$nextTick(() => {
? ? ? ? ? this.$refs.pickers.showCurrentDate()
? ? ? ? })
? ? ? }

子組件:

? showCurrentDate() {
? ? ? this.$el.querySelector('.active').scrollIntoView({
? ? ? ? block: 'start',
? ? ? }) // 回到頂部
? ? },

scrollIntoView在vue里失效---kalrry

Element.scrollIntoView() 方法讓當(dāng)前的元素滾動(dòng)到瀏覽器窗口的可視區(qū)域內(nèi)。

element.scrollIntoView(); // 等同于element.scrollIntoView(true)
element.scrollIntoView(alignToTop); // Boolean型參數(shù)
element.scrollIntoView(scrollIntoViewOptions); // Object型參數(shù)

參數(shù) 

alignToTop: 一個(gè)boolean值
//true:等價(jià)于 scrollIntoViewOptions: {block: “start”, inline: “nearest”}
//false:等價(jià)于scrollIntoViewOptions: {block: “end”, inline: “nearest”}
scrollIntoViewOptions: 對(duì)象
behavior: 定義動(dòng)畫過(guò)度效果, ‘a(chǎn)uto / smooth' , 默認(rèn) ‘a(chǎn)uto'
block:定義垂直方向的對(duì)齊, “start / center / end / nearest”。默認(rèn)為 “start”。
inline 定義水平方向的對(duì)齊, “start / center / end / nearest”。默認(rèn)為 “nearest”

問(wèn)題

按照js標(biāo)準(zhǔn)選擇元素方式,scrollIntoView在vue里失效

原因

該方法需在頁(yè)面完全加載后才能生效

解決

方法一:

利用setTimeout方法

?? ?setTimeout(function(){
? ? ? ? document.getElementById(target).scrollIntoView();
? ? ?},100)

方法二:

運(yùn)用vue中的this.$nextTick方法

?? ?this.$nextTick(()=>{
?? ?//對(duì)象方式設(shè)置滾動(dòng)狀態(tài)
? ? ? ?document.querySelector("#01commonly").scrollIntoView({
? ? ? ? ? block: 'end',
? ? ? ? ? behavior: 'smooth'
? ? ? ? })
?? ?})

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue+element開(kāi)發(fā)使用el-select不能回顯的處理方案

    vue+element開(kāi)發(fā)使用el-select不能回顯的處理方案

    這篇文章主要介紹了vue+element開(kāi)發(fā)使用el-select不能回顯的處理方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • uniapp實(shí)現(xiàn)APP、小程序與webview頁(yè)面間通訊的實(shí)現(xiàn)步驟

    uniapp實(shí)現(xiàn)APP、小程序與webview頁(yè)面間通訊的實(shí)現(xiàn)步驟

    這篇文章主要介紹了uniapp實(shí)現(xiàn)APP、小程序與webview頁(yè)面間通訊的實(shí)現(xiàn)步驟,在Uniapp開(kāi)發(fā)的APP或小程序頁(yè)面中嵌入一個(gè)H5網(wǎng)頁(yè),并實(shí)現(xiàn)H5頁(yè)面與APP之間的數(shù)據(jù)傳遞,需要的朋友可以參考下
    2025-01-01
  • vue2中如何自定義組件的v-model

    vue2中如何自定義組件的v-model

    這篇文章主要介紹了vue2中如何自定義組件的v-model,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • vue實(shí)現(xiàn)一個(gè)矩形標(biāo)記區(qū)域(rectangle marker)的方法

    vue實(shí)現(xiàn)一個(gè)矩形標(biāo)記區(qū)域(rectangle marker)的方法

    這篇文章主要介紹了vue實(shí)現(xiàn)一個(gè)矩形標(biāo)記區(qū)域 rectangle marker的方法,幫助大家實(shí)現(xiàn)區(qū)域標(biāo)記功能,感興趣的朋友可以了解下
    2020-10-10
  • vue 實(shí)現(xiàn)Web端的定位功能 獲取經(jīng)緯度

    vue 實(shí)現(xiàn)Web端的定位功能 獲取經(jīng)緯度

    這篇文章主要介紹了vue 實(shí)現(xiàn)Web端的定位功能獲取經(jīng)緯度,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-08-08
  • Vue使用axios出現(xiàn)options請(qǐng)求方法

    Vue使用axios出現(xiàn)options請(qǐng)求方法

    這篇文章主要介紹了Vue使用axios出現(xiàn)options請(qǐng)求,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • vue-router 源碼之實(shí)現(xiàn)一個(gè)簡(jiǎn)單的 vue-router

    vue-router 源碼之實(shí)現(xiàn)一個(gè)簡(jiǎn)單的 vue-router

    這篇文章主要介紹了vue-router 源碼之實(shí)現(xiàn)一個(gè)簡(jiǎn)單的 vue-router,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • Element Breadcrumb 面包屑的使用方法

    Element Breadcrumb 面包屑的使用方法

    這篇文章主要介紹了Element Breadcrumb 面包屑的使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 3分鐘讀懂移動(dòng)端rem使用方法(推薦)

    3分鐘讀懂移動(dòng)端rem使用方法(推薦)

    這篇文章主要介紹了rem使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • 解決vue修改數(shù)據(jù)頁(yè)面不重新渲染問(wèn)題

    解決vue修改數(shù)據(jù)頁(yè)面不重新渲染問(wèn)題

    這篇文章詳細(xì)介紹了vue渲染機(jī)制和如何解決數(shù)據(jù)修改頁(yè)面不刷新問(wèn)題的多種方法,想了解更多的小伙伴可以借鑒閱讀
    2023-03-03

最新評(píng)論

藁城市| 景泰县| 彭阳县| 遂溪县| 揭阳市| 包头市| 辽中县| 南靖县| 隆昌县| 阿坝| 宾阳县| 龙胜| 彰化县| 青龙| 海南省| 丰顺县| 莱西市| 池州市| 互助| 麻栗坡县| 东辽县| 搜索| 湟源县| 辽宁省| 宜良县| 佳木斯市| 隆尧县| 辰溪县| 扬中市| 晋城| 漳州市| 咸阳市| 葫芦岛市| 杨浦区| 剑川县| 衡水市| 阳春市| 子洲县| 泾川县| 潞城市| 新郑市|