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

vue中遇到scrollIntoView無效問題及解決

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

vue中遇到scrollIntoView無效

官方文檔寫的簡單

Element 接口的scrollIntoView()方法會滾動元素的父容器,使被調(diào)用scrollIntoView()的元素對用戶可見。

語法:

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

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

參數(shù):

  • alignToTop可選

一個Boolean值:

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

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

  • scrollIntoViewOptions 可選

一個包含下列屬性的對象:

  • behavior 可選

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

  • block 可選

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

  • inline 可選

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

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

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

這樣,在vue中可以使用$nextTick函數(shù),確保頁面已渲染完成在去調(diào)scrollIntoView使?jié)L動到可視區(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)前的元素滾動到瀏覽器窗口的可視區(qū)域內(nèi)。

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

參數(shù) 

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

問題

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

原因

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

解決

方法一:

利用setTimeout方法

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

方法二:

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

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

總結(jié)

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

相關(guān)文章

  • Nuxt.js實(shí)現(xiàn)一個SSR的前端博客的示例代碼

    Nuxt.js實(shí)現(xiàn)一個SSR的前端博客的示例代碼

    這篇文章主要介紹了Nuxt.js實(shí)現(xiàn)一個SSR的前端博客的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • vue-cli3腳手架安裝方法

    vue-cli3腳手架安裝方法

    這篇文章主要介紹了vue-cli3腳手架安裝方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-04-04
  • ElementUI對table的指定列進(jìn)行合算

    ElementUI對table的指定列進(jìn)行合算

    本文主要介紹了ElementUI對table的指定列進(jìn)行合算,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • Vue調(diào)用PC攝像頭實(shí)現(xiàn)拍照功能

    Vue調(diào)用PC攝像頭實(shí)現(xiàn)拍照功能

    這篇文章主要為大家詳細(xì)介紹了Vue調(diào)用PC攝像頭實(shí)現(xiàn)拍照功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Vue 使用高德地圖添加點(diǎn)標(biāo)記 + 點(diǎn)擊地圖獲取坐標(biāo) + 帶搜索(即地理編碼 + 逆地理編碼)  附完整示例

    Vue 使用高德地圖添加點(diǎn)標(biāo)記 + 點(diǎn)擊地圖獲取坐標(biāo) + 帶搜索(即地

    這篇文章主要介紹了Vue 使用高德地圖添加點(diǎn)標(biāo)記 + 點(diǎn)擊地圖獲取坐標(biāo) + 帶搜索(即地理編碼 + 逆地理編碼)  附完整示例,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧
    2024-01-01
  • vue-cli瀏覽器實(shí)現(xiàn)熱更新的步驟

    vue-cli瀏覽器實(shí)現(xiàn)熱更新的步驟

    這篇文章主要介紹了vue-cli-瀏覽器實(shí)現(xiàn)熱更新,最常用的是webpack-dev-server,它是一個小型的Node.js?Express服務(wù)器,它使用webpack-dev-middleware來服務(wù)于webpack的包,本文結(jié)合實(shí)例代碼介紹的非常詳細(xì),需要的朋友參考下吧
    2024-03-03
  • Vue?打包優(yōu)化之externals抽離公共的第三方庫詳解

    Vue?打包優(yōu)化之externals抽離公共的第三方庫詳解

    這篇文章主要為大家介紹了Vue?打包優(yōu)化之externals抽離公共的第三方庫詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪<BR>
    2023-06-06
  • 公共組件父子依賴調(diào)用及子校驗父條件問題解決

    公共組件父子依賴調(diào)用及子校驗父條件問題解決

    這篇文章主要介紹了如何解決公共組件父子組件依賴調(diào)用和子組件校驗父組件條件的問題,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • @vue/cli4.x版本的vue.config.js常用配置方式

    @vue/cli4.x版本的vue.config.js常用配置方式

    這篇文章主要介紹了@vue/cli4.x版本的vue.config.js常用配置方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • 淺析vue插槽和作用域插槽的理解

    淺析vue插槽和作用域插槽的理解

    插槽,也就是slot,是組件的一塊HTML模板,這塊模板顯示不現(xiàn)實(shí)、以及怎樣顯示由父組件來決定。這篇文章主要介紹了淺析vue插槽和作用域插槽的理解,需要的朋友可以參考下
    2019-04-04

最新評論