vue 中滾動條始終定位在底部的方法
滾動條定位在底部,首先想到的是,動態(tài)修改滾動條到頂部的距離等于div的高度,
代碼實(shí)現(xiàn):
var div = document.getElementById('data-list-content') div.scrollTop = div.scrollHeight
但是問題來了,滾動條并沒有到達(dá)底部,而是距離底部還有一點(diǎn)距離(一臉懵逼)
估計(jì)是動態(tài)加載數(shù)據(jù)時(shí),數(shù)據(jù)還未加載,滾動條就已經(jīng)執(zhí)行,知道原因了,那就實(shí)踐唄。
第二次嘗試,利用vue的watch監(jiān)控?cái)?shù)據(jù)的改變,然后動態(tài)修改滾動條到頂部的距離
代碼實(shí)現(xiàn):
watch: { 'processData': 'scrollToBottom' } scrollToBottom: function () { var div = document.getElementById('data-list-content') div.scrollTop = div.scrollHeight }
再次崩潰了,好像沒有毛用(陷入苦思)。
這個(gè)時(shí)候我想到了$nextTick 。
簡單的介紹下$nextTick:
Vue 實(shí)現(xiàn)響應(yīng)式并不是數(shù)據(jù)發(fā)生變化之后 DOM 立即變化,而是按一定的策略進(jìn)行 DOM 的更新。
$nextTick 是在下次 DOM 更新循環(huán)結(jié)束之后執(zhí)行延遲回調(diào),在修改數(shù)據(jù)之后使用 。
既然$nextTick是在下次DOM更新時(shí)執(zhí)行的,不正好符合我們的要求嘛(小激動)。
代碼實(shí)現(xiàn):
watch: { 'processData': 'scrollToBottom' } scrollToBottom: function () { this.$nextTick(() => { var div = document.getElementById('data-list-content') div.scrollTop = div.scrollHeight }) }
運(yùn)行代碼,成功了。
以上這篇vue 中滾動條始終定位在底部的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue+springmvc導(dǎo)出excel數(shù)據(jù)的實(shí)現(xiàn)代碼
這篇文章主要介紹了vue+springmvc導(dǎo)出excel數(shù)據(jù)的實(shí)現(xiàn)代碼,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-06-06vuecli+AXdownload下載組件封裝?+css3下載懸浮球動畫效果
當(dāng)觸發(fā)下載功能的時(shí)候,會觸發(fā)一個(gè)下載動畫,下載懸浮球會自動彈出,并且閃爍提示有新的下載任務(wù)直到下載任務(wù)完場提示,接下來通過本文介紹vuecli+AXdownload下載組件封裝?+css3下載懸浮球動畫效果,需要的朋友可以參考下2024-05-05vue3利用customRef實(shí)現(xiàn)防抖
防抖就是對于頻繁觸發(fā)的事件添加一個(gè)延時(shí)同時(shí)設(shè)定一個(gè)最小觸發(fā)間隔,防抖大家都學(xué)過,但是如何在?Vue3?里中將防抖做到極致呢,下面小編就來和大家詳細(xì)講講2023-10-10Vue實(shí)現(xiàn)讓頁面加載時(shí)請求后臺接口數(shù)據(jù)
這篇文章主要介紹了Vue實(shí)現(xiàn)讓頁面加載時(shí)請求后臺接口數(shù)據(jù)2022-08-08vue實(shí)現(xiàn)一個(gè)簡單的Grid拖拽布局
這篇文章主要為大家詳細(xì)介紹了如何利用vue實(shí)現(xiàn)一個(gè)簡單的Grid拖拽布局,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-12-12Vue3中使用pnpm搭建monorepo開發(fā)環(huán)境
這篇文章主要為大家介紹了Vue3中使用pnpm搭建monorepo開發(fā)環(huán)境示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08