亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Vue實現(xiàn)渲染數(shù)據(jù)后控制滾動條位置(推薦)

 更新時間:2019年12月09日 15:59:46   作者:神奇的程序員  
這篇文章主要介紹了Vue實現(xiàn)渲染數(shù)據(jù)后控制滾動條位置,本文通過圖文并茂的形式給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下

需求場景如下:

實現(xiàn)了消息發(fā)送,如果容器內(nèi)消息過多,會出現(xiàn)滾動條,最新的消息位于最底部,不能及時出現(xiàn)在可視區(qū)域內(nèi),此時就需要在渲染列表后,將滾動條的位置定位到最底部。先來看看最終實現(xiàn)的效果

  

實現(xiàn)思路

  • 渲染完數(shù)據(jù)后,通過refs對象獲取消息容器的實際高度
  • 將滾動條的設置到最底部

實現(xiàn)過程

sendMessage: function (event) {
  // 數(shù)據(jù)渲染
  this.senderMessageList.push(thisSenderMessageObj);
  // 改變滾動條位置
  this.messagesContainerTimer = setTimeout(()=>{
    this.$refs.messagesContainer.scrollTop = this.$refs.messagesContainer.scrollHeight;
    console.log("當前滾動條位置:"+this.$refs.messagesContainer.scrollTop);
    console.log("當前可滾動區(qū)域容器的高度:"+this.$refs.messagesContainer.scrollHeight);
    // 清理定時器
    clearTimeout(this.messagesContainerTimer);
  },0);
}

踩坑記錄

直接設置滾動條的位置

數(shù)據(jù)渲染完成后直接獲取元素的真實高度,設置滾動條的位置,講道理好像沒什么毛病,結(jié)果滾動條的高度沒有預想的渲染。問題原因:數(shù)據(jù)渲染完成后,Vue此時還沒有渲染DOM元素,設置的滾動條高度還是之前的容器高度。

sendMessage: function (event) {
  // 數(shù)據(jù)渲染
  this.senderMessageList.push(thisSenderMessageObj);
  // 改變滾動條位置
  this.$refs.messagesContainer.scrollTop = this.$refs.messagesContainer.scrollHeight;
  console.log("當前滾動條位置:"+this.$refs.messagesContainer.scrollTop);
  console.log("當前可滾動區(qū)域容器的高度:"+this.$refs.messagesContainer.scrollHeight);
}

正確的改變方式: 使用setTimeout(),將DOM操作改為異步。

this.messagesContainerTimer = setTimeout(()=>{
  this.$refs.messagesContainer.scrollTop = this.$refs.messagesContainer.scrollHeight;
  console.log("當前滾動條位置:"+this.$refs.messagesContainer.scrollTop);
  console.log("當前可滾動區(qū)域容器的高度:"+this.$refs.messagesContainer.scrollHeight);
  // 清理定時器
  clearTimeout(this.messagesContainerTimer);
},0);

總結(jié)

以上所述是小編給大家介紹的Vue實現(xiàn)渲染數(shù)據(jù)后控制滾動條位置,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

相關(guān)文章

  • vue實現(xiàn)點擊出現(xiàn)操作彈出框的示例

    vue實現(xiàn)點擊出現(xiàn)操作彈出框的示例

    這篇文章主要介紹了vue實現(xiàn)點擊出現(xiàn)操作彈出框的示例,幫助大家更好的理解和使用vue,感興趣的朋友可以了解下
    2020-11-11
  • vue3的reactive賦值問題解決

    vue3的reactive賦值問題解決

    vue3中直接對reactive聲明的變量本身進行賦值是無效的,本文主要介紹了vue3的reactive賦值問題解決,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • 基于Vue2實現(xiàn)動態(tài)折扣表格

    基于Vue2實現(xiàn)動態(tài)折扣表格

    這篇文章主要為大家詳細介紹了如何基于Vue2實現(xiàn)動態(tài)折扣表格,文中的示例代碼講解詳細,具有一定的借鑒價值,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-01-01
  • 講解vue-router之命名路由和命名視圖

    講解vue-router之命名路由和命名視圖

    這篇文章主要介紹了講解vue-router之命名路由和命名視圖,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • VUE中的filters過濾器使用方法

    VUE中的filters過濾器使用方法

    這篇文章主要介紹了VUE中的filters過濾器使用方法,文章主要通過描述全局過濾器、全局過濾器之單一掛載、全局過濾器之批量掛載?、組件過濾器展開內(nèi)容,具有一定的參考價值組要的小伙伴可以參考一下
    2022-03-03
  • Vue nextTick延遲回調(diào)獲取更新后DOM機制詳解

    Vue nextTick延遲回調(diào)獲取更新后DOM機制詳解

    這篇文章主要為大家介紹了Vue nextTick延遲回調(diào)獲取更新后DOM機制詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • vue如何設置輸入框只能輸入數(shù)字且只能輸入小數(shù)點后兩位,并且不能輸入減號

    vue如何設置輸入框只能輸入數(shù)字且只能輸入小數(shù)點后兩位,并且不能輸入減號

    這篇文章主要介紹了vue如何設置輸入框只能輸入數(shù)字且只能輸入小數(shù)點后兩位,并且不能輸入減號問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • vue實現(xiàn)目錄樹結(jié)構(gòu)

    vue實現(xiàn)目錄樹結(jié)構(gòu)

    這篇文章主要為大家詳細介紹了vue實現(xiàn)目錄樹結(jié)構(gòu),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Vue包大小優(yōu)化的實現(xiàn)(從1.72M到94K)

    Vue包大小優(yōu)化的實現(xiàn)(從1.72M到94K)

    這篇文章主要介紹了Vue包大小優(yōu)化的實現(xiàn)(從1.72M到94K),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-02-02
  • Vue 中頁面?zhèn)髦档亩喾N方式小結(jié)

    Vue 中頁面?zhèn)髦档亩喾N方式小結(jié)

    本文主要介紹了Vue 中頁面?zhèn)髦档亩喾N方式小結(jié),主要包括路由傳參、Vuex 狀態(tài)管理、Props 屬性和事件傳遞數(shù)據(jù)這幾種,具有一定的參考價值,感興趣的可以了解一下
    2023-10-10

最新評論