国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

vue項目設置scrollTop不起作用(總結)

2024-05-06 15:27:12
字體:
來源:轉載
供稿:網友

今天在開發中,遇到這樣一個情景。一個頁面中有三個模塊,每個模塊對應一個標題,每個模塊內容都很長,所以需要點擊當前模塊對應的標題滾動到模塊所在位置。

我想的方案是獲取到每個模塊距離文檔頂部的距離,然后將值賦給對應要滾動的元素。 步驟如下:

首先給每個模塊一個id,例如:

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

點擊每個標題的時候獲取到當前模塊的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點擊滾動   goAnchor(val) {    let anchor = this.$el.querySelector(val); }

*最后就可以獲取每個模塊距離文檔頂部的距離了,然后賦值給對應要滾動的元素就可以了

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

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

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   })  } }

注意點

確定下滾動條是在哪里顯示的

有個方法判斷下:

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

解決方案

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

<!--element-ui--><el-main class="scrolldivmain">  some code</el-main>methods: { // 滾動到底部  scrollToBottom () {   this.$nextTick(() => {    setTimeout(() => {     var scrollTop = this.$el.querySelector('.scrolldivmain')     scrollTop.scrollTop = scrollTop.scrollHeight    }, 13)   })  }}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 鄂温| 岑溪市| 陇南市| 伊吾县| 吴忠市| 唐海县| 阳信县| 措勤县| 溧阳市| 冀州市| 土默特左旗| 嘉义县| 台中县| 江津市| 蒙自县| 中超| 彭州市| 阜平县| 敖汉旗| 桦南县| 德钦县| 毕节市| 绥宁县| 黄浦区| 怀仁县| 仙桃市| 湘西| 中牟县| 威宁| 祥云县| 韩城市| 灵丘县| 淮滨县| 达日县| 宁河县| 内丘县| 吴堡县| 霞浦县| 酉阳| 三明市| 石狮市|