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

vue項(xiàng)目設(shè)置scrollTop不起作用(總結(jié))

 更新時(shí)間:2018年12月21日 14:47:38   作者:Coding_Jia  
這篇文章主要介紹了vue項(xiàng)目設(shè)置scrollTop不起作用(總結(jié)),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

今天在開(kāi)發(fā)中,遇到這樣一個(gè)情景。一個(gè)頁(yè)面中有三個(gè)模塊,每個(gè)模塊對(duì)應(yīng)一個(gè)標(biāo)題,每個(gè)模塊內(nèi)容都很長(zhǎng),所以需要點(diǎn)擊當(dāng)前模塊對(duì)應(yīng)的標(biāo)題滾動(dòng)到模塊所在位置。

我想的方案是獲取到每個(gè)模塊距離文檔頂部的距離,然后將值賦給對(duì)應(yīng)要滾動(dòng)的元素。 步驟如下:

首先給每個(gè)模塊一個(gè)id,例如:

<div class="module module1" id="anchor-0">
<div class="module module1" id="anchor-1">
<div class="module module1" id="anchor-2">

點(diǎn)擊每個(gè)標(biāo)題的時(shí)候獲取到當(dāng)前模塊的id

<a v-for="(navItem,index) in navData" :key="index" class="navItem" :class="{active:index == i }" @click="goAnchor('#anchor-'+index)">{{navItem.name}}</a>

methods: {
   // tab點(diǎn)擊滾動(dòng)
   goAnchor(val) {
    let anchor = this.$el.querySelector(val);
 }

*最后就可以獲取每個(gè)模塊距離文檔頂部的距離了,然后賦值給對(duì)應(yīng)要滾動(dòng)的元素就可以了

methods: {
   // tab滾動(dòng)
   goAnchor(val) {
    let anchor = this.$el.querySelector(val);
    this.$nextTick(() => {
     document.querySelector(".el-main").scrollTop = anchor.offsetTop;
    });
   },

切記:在這里一定要加上this.$nextTick()方法,否則document.querySelector(“.el-main”).scrollTop的值永遠(yuǎn)為0,不會(huì)賦值成功的!

container.scrollTop 一直為0不能賦值的解決方法

 watch: {
  historyList () {
   this.$nextTick(() => {
    const container = this.$el.querySelector('.scrolldivmain')
    console.log(container.scrollHeight)
    console.log(container.scrollTop)
    this.$refs.scrolldiv.scrollTo(0, container.scrollHeight + 'px')
    container.scrollTop = container.scrollHeight
    container.scrollTop(0, container.scrollHeight)
    console.log(container.scrollTop) // container.scrollTop 一直為0
   })
  }
 }

注意點(diǎn)

確定下滾動(dòng)條是在哪里顯示的

有個(gè)方法判斷下:

  window.addEventListener('scroll', () => {
    var scrollTop = this.$el.querySelector('.scrolldivmain')
    // console.log(scrollTop.scrollHeight)
    console.log(scrollTop.scrollTop) // 查看打印的值是否有變化 如果有 則說(shuō)明滾滾動(dòng)條在這個(gè)標(biāo)簽中
    // scrollTop.scrollTop = scrollTop.scrollHeight // 可以嘗試下 滾動(dòng)滾動(dòng)條。一直在底部則可以設(shè)置成功
  }, true)

解決方案

需要用到的地方 調(diào)用this.scrollToBottom()即可

<!--element-ui-->

<el-main class="scrolldivmain">
  some code
</el-main>
methods: {
 // 滾動(dòng)到底部
  scrollToBottom () {
   this.$nextTick(() => {
    setTimeout(() => {
     var scrollTop = this.$el.querySelector('.scrolldivmain')
     scrollTop.scrollTop = scrollTop.scrollHeight
    }, 13)
   })
  }
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue項(xiàng)目實(shí)現(xiàn)webpack配置代理,解決跨域問(wèn)題

    vue項(xiàng)目實(shí)現(xiàn)webpack配置代理,解決跨域問(wèn)題

    這篇文章主要介紹了vue項(xiàng)目實(shí)現(xiàn)webpack配置代理,解決跨域問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • vue實(shí)現(xiàn)自定義多選按鈕

    vue實(shí)現(xiàn)自定義多選按鈕

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)自定義多選按鈕,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • Vue中CSS?scoped的原理詳細(xì)講解

    Vue中CSS?scoped的原理詳細(xì)講解

    在組件中增加的css加了scoped屬性之后,就在會(huì)在當(dāng)前這個(gè)組件的節(jié)點(diǎn)上增加一個(gè)data-v-xxx屬性,下面這篇文章主要給大家介紹了關(guān)于Vue中CSS?scoped原理的相關(guān)資料,需要的朋友可以參考下
    2023-01-01
  • vue 解除鼠標(biāo)的監(jiān)聽(tīng)事件的方法

    vue 解除鼠標(biāo)的監(jiān)聽(tīng)事件的方法

    這篇文章主要介紹了vue 解除鼠標(biāo)的監(jiān)聽(tīng)事件的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • element多個(gè)表單校驗(yàn)的實(shí)現(xiàn)

    element多個(gè)表單校驗(yàn)的實(shí)現(xiàn)

    在項(xiàng)目中,經(jīng)常會(huì)遇到表單檢驗(yàn),在這里我分享在實(shí)際項(xiàng)目中遇到多個(gè)表單同時(shí)進(jìn)行校驗(yàn)以及我的解決方法,感興趣的可以了解一下
    2021-05-05
  • vue3中輕松實(shí)現(xiàn)switch功能組件的全過(guò)程

    vue3中輕松實(shí)現(xiàn)switch功能組件的全過(guò)程

    這篇文章主要給大家介紹了關(guān)于vue3中輕松實(shí)現(xiàn)switch功能組件的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • vue項(xiàng)目打包后,由于html被緩存導(dǎo)致出現(xiàn)白屏的處理方案

    vue項(xiàng)目打包后,由于html被緩存導(dǎo)致出現(xiàn)白屏的處理方案

    這篇文章主要介紹了vue項(xiàng)目打包后,由于html被緩存導(dǎo)致出現(xiàn)白屏的處理方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • vue3使用Electron打包成exe的方法與打包報(bào)錯(cuò)解決

    vue3使用Electron打包成exe的方法與打包報(bào)錯(cuò)解決

    在前端開(kāi)發(fā)中,Electron是一種常用的工具,它允許開(kāi)發(fā)者使用Web技術(shù)構(gòu)建桌面應(yīng)用程序,本文主要介紹了vue3使用Electron打包成exe的方法與打包報(bào)錯(cuò)解決,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-06-06
  • Vue修改mint-ui默認(rèn)樣式的方法

    Vue修改mint-ui默認(rèn)樣式的方法

    下面小編就為大家分享一篇Vue修改mint-ui默認(rèn)樣式的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-02-02
  • vue+axios?methods方法return取不到值問(wèn)題及解決

    vue+axios?methods方法return取不到值問(wèn)題及解決

    這篇文章主要介紹了vue+axios?methods方法return取不到值問(wèn)題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-10-10

最新評(píng)論