国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

element plus el-table 添加滾動(dòng)監(jiān)聽

這篇具有很好參考價(jià)值的文章主要介紹了element plus el-table 添加滾動(dòng)監(jiān)聽。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

項(xiàng)目上使用 el-table 加載1000 條數(shù)據(jù),同時(shí)有三個(gè)列的數(shù)據(jù)需要實(shí)時(shí)更新,而數(shù)據(jù)更新時(shí)會(huì)導(dǎo)致頁(yè)面不響應(yīng),表現(xiàn)為拖動(dòng)過(guò)程中突然卡頓。為了解決卡頓問(wèn)題提出了兩個(gè)解決辦法:一個(gè)是滾動(dòng)時(shí)清除定時(shí)器,不再刷新表格,滾動(dòng)結(jié)束后恢復(fù)定時(shí)器;另一個(gè)是只刷新視口數(shù)據(jù),更新的數(shù)據(jù)量少了,自然不會(huì)卡頓。后者通過(guò)前者監(jiān)聽表格滾動(dòng),實(shí)時(shí)更新縱向滾動(dòng)位移,再結(jié)合行高計(jì)算偏移量即可。下面主要講述如何監(jiān)聽表格滾動(dòng)。

網(wǎng)上可以搜到 element 的表格滾動(dòng)監(jiān)聽方法,試過(guò)之后發(fā)現(xiàn)不適用于 element plus,經(jīng)過(guò)翻閱源碼后找見了以下方法:

const tableRef = ref<InstanceType<typeof ElTable>>();
var timer: NodeJS.Timeout;
var scrollEndTimer: NodeJS.Timeout;
var tableScrollTop = 0;

const callback = () => {
  timer = setInterval(queryData, 3000);
};

onMounted(() => {
  // 開始滾動(dòng)后清除定時(shí)器,滾動(dòng)結(jié)束后啟動(dòng)定時(shí)器
  const scrollBarRef: any = tableRef.value!.$refs.scrollBarRef;
  const wrapRef = scrollBarRef.wrapRef;
  // onscrollend 事件只在較新的瀏覽器中支持,詳見 MDN
  if ("onscrollend" in window) {
    wrapRef.addEventListener("scroll", (event: any) => {
      clearInterval(timer);
      tableScrollTop = event.target.scrollTop;
    });
    wrapRef.addEventListener("scrollend", callback);
  } else {
    wrapRef.addEventListener("scroll", () => {
      clearInterval(timer);
      clearTimeout(scrollEndTimer);
      scrollEndTimer = setTimeout(callback, 100);
    });
  }

  callback();
});

// 進(jìn)入頁(yè)面時(shí)啟動(dòng)定時(shí)器
onActivated(() => {
  if (timer) {
    clearInterval(timer);
  }
  callback();
});

// 離開頁(yè)面時(shí)銷毀定時(shí)器
onDeactivated(() => {
  clearInterval(timer);
});

以下是部分源碼:

element plus el-table 添加滾動(dòng)監(jiān)聽,Web,vue.js,javascript,前端,element plus
圖1
element plus el-table 添加滾動(dòng)監(jiān)聽,Web,vue.js,javascript,前端,element plus
圖2

從圖 1 可以看到,table body 是包裹在 el-scrollbar 中的,圖 2 中可以看到 el-scrollbar 的內(nèi)容部分可以通過(guò) wrapRef 獲取到,基于此就可以添加滾動(dòng)監(jiān)聽了。

參考文章:超實(shí)用的全新JavaScript事件Scrollend實(shí)例詳解文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-736042.html

到了這里,關(guān)于element plus el-table 添加滾動(dòng)監(jiān)聽的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Vue3+Element Plus實(shí)現(xiàn)el-table跨行顯示(非腳手架)
  • vue中數(shù)據(jù)滾動(dòng)顯示 實(shí)現(xiàn)Element-UI中el-table內(nèi)數(shù)據(jù)的懶加載

    工作中我們經(jīng)常會(huì)用到element-ui組件庫(kù)中的le-table組件來(lái)展示數(shù)據(jù),但當(dāng)table的數(shù)據(jù)源數(shù)量過(guò)大的時(shí)候統(tǒng)一展示可能會(huì)出現(xiàn)頁(yè)面卡頓,且會(huì)影響用戶體驗(yàn),為此我們可以嘗試對(duì)el-table中的數(shù)據(jù)做懶加載的效果展示: 1. 掛在階段監(jiān)聽el-table的scroll滾動(dòng)事件 2. 當(dāng)table表格滾動(dòng)條的位置

    2023年04月08日
    瀏覽(17)
  • 【vue】element-ui、el-table使用V-for循環(huán)動(dòng)態(tài)添加表頭和數(shù)據(jù)

    【vue】element-ui、el-table使用V-for循環(huán)動(dòng)態(tài)添加表頭和數(shù)據(jù)

    參考鏈接 https://blog.csdn.net/xz1589155358/article/details/126597271

    2024年02月11日
    瀏覽(28)
  • vue+element-ui el-table組件二次封裝實(shí)現(xiàn)虛擬滾動(dòng),解決數(shù)據(jù)量大渲染DOM過(guò)多而卡頓問(wèn)題

    vue+element-ui el-table組件二次封裝實(shí)現(xiàn)虛擬滾動(dòng),解決數(shù)據(jù)量大渲染DOM過(guò)多而卡頓問(wèn)題

    某些頁(yè)面不做分頁(yè)時(shí),當(dāng)數(shù)據(jù)過(guò)多,會(huì)導(dǎo)致頁(yè)面卡頓,甚至卡死 一、固定一個(gè) 可視區(qū)域 的大小并且其大小是不變的,那么要做到性能最大化就需要盡量少地渲染 DOM 元素,而這個(gè)最小值也就是可視范圍內(nèi)需要展示的內(nèi)容,而可視區(qū)域之外的元素均可以不做渲染。 二、如何計(jì)

    2024年02月10日
    瀏覽(18)
  • Element Plus二次封裝el-table、可編輯表格

    Element Plus二次封裝el-table、可編輯表格

    一、需求 在后臺(tái)管理項(xiàng)目中,可以顯而易見的見到表格組件,為了方便我們會(huì)把表格組件進(jìn)行二次封裝,即方便了開發(fā),也方便了維護(hù)。 2023年04月01日更新單元格編輯功能 擴(kuò)展 el-table 擴(kuò)展【表格動(dòng)態(tài)列展示】 整合版本,附帶查詢,分頁(yè),表頭自定義展示,等其他功能。 注

    2024年02月07日
    瀏覽(28)
  • Element Plus el-table 自定義合并行和列

    Element Plus el-table 自定義合并行和列

    原文鏈接:Element Plus el-table 自定義合并行和列 目標(biāo)效果是將表格行數(shù)據(jù)中某個(gè)屬性值相同的項(xiàng)合并到一起,效果如下: sortArray() 此方法根據(jù)目標(biāo)屬性值( StoAlias )排序了。 點(diǎn)擊 傳送門 查看更多關(guān)于【el-table 合并行或列】的信息。

    2024年02月12日
    瀏覽(24)
  • element-plus el-table 點(diǎn)擊單行修改背景色

    element-plus + el-table 點(diǎn)擊行選中并修改背景色+文字顏色 方法一: 重點(diǎn): highlight-current-row element-plus 本身有給提供這個(gè)功能,而且比第二個(gè)方法更好用,第二個(gè)方法在有列固定的情況下,樣式會(huì)不生效,所以建議直接用第一種 方法二: 重點(diǎn): @row-click :row-style

    2024年02月15日
    瀏覽(35)
  • element-ui的table實(shí)現(xiàn)滾動(dòng)加載,涵el-table組件封裝一份

    element-ui的table實(shí)現(xiàn)滾動(dòng)加載,涵el-table組件封裝一份

    重點(diǎn)就是 a d d R o l l L i s t e n e r addRollListener a d d R o l l L i s t e n e r 函數(shù),想快點(diǎn)弄上去看效果的直接弄這個(gè)函數(shù)吧 如果不在mounted中則一定要this.$nextTick(() = this.addRollListener()) 示例代碼 如果你把上面的看過(guò)了;只需要在 a d d R o l l L i s t e n e r addRollListener a d d R o l l L i s t e

    2023年04月08日
    瀏覽(34)
  • 修改element-ui中的表格el-table的滾動(dòng)條樣式

    一.單獨(dú)修改element-ui中的表格el-table的滾動(dòng)條樣式(兩種方法) 1. 2. ?二.保持整個(gè)頁(yè)面的滾動(dòng)條的風(fēng)格是一致(直接改全局的滾動(dòng)條樣式) 三.頁(yè)面內(nèi)某一組件滾動(dòng)條樣式美化? scroll-bar是需要滾動(dòng)條組件的元素,類名自定義

    2024年02月11日
    瀏覽(31)
  • element ui el-table表格縱向橫向滾動(dòng)條去除并隱藏空白占位列

    element ui el-table表格縱向橫向滾動(dòng)條去除并隱藏空白占位列

    當(dāng)table內(nèi)容列過(guò)多時(shí),可通過(guò) height屬性 設(shè)置table高度以固定table高度、固定表頭,使table內(nèi)容可以滾動(dòng) 現(xiàn)在需求是 右側(cè)滾動(dòng)條 不好看,需要去 除滾動(dòng)條 , 并隱藏滾動(dòng)條所占列 的位置

    2024年02月04日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包