elementui el-table 橫向滾動條保持在可視范圍中

以下記錄是個人開發(fā)過程中遇到的問題:


效果.gif

當(dāng)列表內(nèi)容部分可見時,保持橫向滾動條在下方。

實(shí)現(xiàn)

原理
1.這里涉及到兩個Dom元素蚪腐,類名分別為 el-table__body-wrapper二汛、el-table__body通過觀察發(fā)現(xiàn)橫向滾動條在于el-table__body-wrapper上,el-table__body則是實(shí)際的列表內(nèi)容婆硬,當(dāng)el-table__body寬度超出el-table__body-wrapper時就會出現(xiàn)橫向滾動條。
2.因此只需要動態(tài)的修改el-table__body-wrapperheight即可實(shí)現(xiàn)想要的效果歉井。
3.在頁面發(fā)生滾動柿祈、頁面大小改變以及數(shù)據(jù)源更新的時候?qū)?code>el-table__body-wrapper的height進(jìn)行調(diào)整。

代碼
這里是通過mixin方式的實(shí)現(xiàn)哩至。

let el;
let tableBodyWrapDom = document.getElementsByClassName('.el-table__body-wrapper');
let tableBodyDom = document.getElementsByClassName('.el-table__body')

function handle() {
  if (!el) return;
  // top為dom上側(cè)距離可視窗口頂部的值
  const { top:tableBodyDomTop } = tableBodyWrapDom.getBoundingClientRect();  
  if (tableBodyDomTop > window.innerHeight || tableBodyWrapDom.classList.contains('is-scrolling-none')) {
    // 此時列表在可視窗口的下側(cè)不可見區(qū)域躏嚎,因此不做任何修改
    tableBodyWrapDom.style.height = 'unset'
    tableBodyWrapDom.style.marginBottom = 'unset';
  } else {
    // 窗口高度 - 列表距頂部值 且 不超過自身實(shí)際值
    let wrapHeight = Math.min(window.innerHeight - tableBodyDomTop, tableBodyDom.offsetHeight);
    tableBodyWrapDom.style.height = wrapHeight + 'px';
    // 需要用marginBottom填充,以保持列表原有高度菩貌,避免頁面的縱向滾動條變化導(dǎo)致頁面滾動的不流暢
    // 可以通過注釋這一行代碼觀察其效果差異
    tableBodyWrapDom.style.marginBottom = (tableBodyDom.offsetHeight - wrapHeight) + 'px';
    // console.log(tableBodyWrapDom.style.marginBottom,'marginBottom')
  }
}

export default {
  mounted() {
    el = this.$el; // 當(dāng)前組件的Dom對象卢佣,避免操作到本組件之外的Dom
    tableBodyWrapDom = el.querySelector('.el-table__body-wrapper');
    tableBodyDom = el.querySelector('.el-table__body');
     // 監(jiān)聽事件
     window.addEventListener('scroll', handle,true);
     window.addEventListener('resize', handle,true);
   },
   destroyed() {
     // 在組件銷毀時取消監(jiān)聽
     window.removeEventListener('scroll',  handle,true);
     window.removeEventListener('resize',  handle,true);
   },
   watch: {
     list() {
       // 當(dāng)列表數(shù)據(jù)源發(fā)生變化時,再次觸發(fā)
       this.$nextTick( handle);
     }
   }
}

watch中監(jiān)聽的list:在引用混合的組件中

<el-table
        ref="brandTable"
        :data="list" <----
        style="width: 100%"
        @selection-change="handleSelectionChange"
        v-loading="listLoading"
        border
      >
....
</el-table>

原文參考:elementui el-table 橫向滾動條保持在可視范圍中

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末箭阶,一起剝皮案震驚了整個濱河市虚茶,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌仇参,老刑警劉巖嘹叫,帶你破解...
    沈念sama閱讀 221,273評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異诈乒,居然都是意外死亡罩扇,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,349評論 3 398
  • 文/潘曉璐 我一進(jìn)店門怕磨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來喂饥,“玉大人,你說我怎么就攤上這事肠鲫≡卑铮” “怎么了?”我有些...
    開封第一講書人閱讀 167,709評論 0 360
  • 文/不壞的土叔 我叫張陵导饲,是天一觀的道長捞高。 經(jīng)常有香客問我氯材,道長,這世上最難降的妖魔是什么棠枉? 我笑而不...
    開封第一講書人閱讀 59,520評論 1 296
  • 正文 為了忘掉前任浓体,我火速辦了婚禮,結(jié)果婚禮上辈讶,老公的妹妹穿的比我還像新娘命浴。我一直安慰自己,他們只是感情好贱除,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,515評論 6 397
  • 文/花漫 我一把揭開白布生闲。 她就那樣靜靜地躺著,像睡著了一般月幌。 火紅的嫁衣襯著肌膚如雪碍讯。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,158評論 1 308
  • 那天扯躺,我揣著相機(jī)與錄音捉兴,去河邊找鬼。 笑死录语,一個胖子當(dāng)著我的面吹牛倍啥,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播澎埠,決...
    沈念sama閱讀 40,755評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼虽缕,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了蒲稳?” 一聲冷哼從身側(cè)響起氮趋,我...
    開封第一講書人閱讀 39,660評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎江耀,沒想到半個月后剩胁,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,203評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡祥国,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,287評論 3 340
  • 正文 我和宋清朗相戀三年摧冀,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片系宫。...
    茶點(diǎn)故事閱讀 40,427評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖建车,靈堂內(nèi)的尸體忽然破棺而出扩借,到底是詐尸還是另有隱情,我是刑警寧澤缤至,帶...
    沈念sama閱讀 36,122評論 5 349
  • 正文 年R本政府宣布潮罪,位于F島的核電站康谆,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏嫉到。R本人自食惡果不足惜沃暗,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,801評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望何恶。 院中可真熱鬧孽锥,春花似錦、人聲如沸细层。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,272評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽疫赎。三九已至盛撑,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間捧搞,已是汗流浹背抵卫。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留胎撇,地道東北人介粘。 一個月前我還...
    沈念sama閱讀 48,808評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像创坞,于是被迫代替她去往敵國和親碗短。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,440評論 2 359

推薦閱讀更多精彩內(nèi)容