vue element table自適應(yīng)高度設(shè)置

項目中表格需要自適應(yīng)高度,否則表格會撐開瀏覽器頁面出現(xiàn)2個滾動條祷蝌。不好看,做一個自定義的高度

首先在 src目錄下創(chuàng)建一個directive文件夾
在添加一個 adaptive.js
頁面縮放的監(jiān)聽是使用的 element-ui 中的 resize-event 外恕,將 addResizeListener 和 removeResizeListener 引入進來杆逗。自定義指令要用到的鉤子函數(shù):
bind:只調(diào)用一次,指令第一次綁定到元素時調(diào)用鳞疲。在這里可以進行一次性的初始化設(shè)置罪郊。
inserted:被綁定元素插入父節(jié)點時調(diào)用 (僅保證父節(jié)點存在,但不一定已被插入文檔中)。
unbind:只調(diào)用一次,指令與元素解綁時調(diào)用故黑。

// 設(shè)置表格高度
const doResize = async (el, binding, vnode) => {
  // 獲取表格Dom對象
  const {
    componentInstance: $table
  } = await vnode
  // 獲取調(diào)用傳遞過來的數(shù)據(jù) 
  const {
    value
  } = binding

  if (!$table.height) {
    throw new Error(`el-$table must set the height. Such as height='100px'`)
  }
  // 獲取距底部距離(用于展示頁碼等信息)
  const bottomOffset = (value && value.bottomOffset) || 30

  if (!$table) return

  // 計算列表高度并設(shè)置
  const height = window.innerHeight - el.getBoundingClientRect().top - bottomOffset
  $table.layout.setHeight(height)
  $table.doLayout()
}

export default {
  // 初始化設(shè)置
  bind(el, binding, vnode) {
    // 設(shè)置resize監(jiān)聽方法
    el.resizeListener = async () => {
      await doResize(el, binding, vnode)
    }
    // 綁定監(jiān)聽方法到addResizeListener
    // addResizeListener(window.document.body, el.resizeListener)
    window.addEventListener('resize', el.resizeListener)
  },
  update(el, binding, vnode) {
    doResize(el, binding, vnode)
  },
  // 綁定默認高度
  async inserted(el, binding, vnode) {
    await doResize(el, binding, vnode)
  },
  // 銷毀時設(shè)置
  unbind(el) {
    // 移除resize監(jiān)聽
    // removeResizeListener(el, el.resizeListener)
    window.removeEventListener('resize', el.resizeListener)
  }
}

接下來咖驮,需要將寫好的邏輯綁定到 Vue 中,在同一目錄下新建 index.js

import adaptive from './adaptive'

const install = function(Vue) {   
  // 綁定v-adaptive指令
  Vue.directive('adaptive', adaptive)
}

if (window.Vue) {
  window['adaptive'] = adaptive  
  // eslint-disable-next-line no-undef 
  Vue.use(install)
}

adaptive.install = install

export default adaptive

全局使用

如果存在多個頁面需要設(shè)置自適應(yīng)高度个唧,為了減少使用指令的復雜度,我們可以在 main.js 中全局引入自定義的指令,上述 script 的內(nèi)容就不需要在每個頁面進行寫入了睛挚。

import adaptive from './directive/el-table'

Vue.use(adaptive)

然后找到表格所在的標簽添加指令相關(guān)的代碼:

<el-table  
  ref="table"
  // 自定義指令,bottomOffset 代表距離底部的距離
  v-adaptive="{bottomOffset: 85}"
  // 高度屬性急黎,100無具體意義扎狱,僅為初始值,不可省略
  height="100px" 
 >
 ... ...
 </table>

如果單頁面使用的話
import adaptive from '@/directive/el-table'引入即可

原文鏈接:https://juejin.im/post/5eb907d46fb9a0432f0ffac3

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末勃教,一起剝皮案震驚了整個濱河市淤击,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌故源,老刑警劉巖污抬,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異绳军,居然都是意外死亡印机,警方通過查閱死者的電腦和手機矢腻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來耳贬,“玉大人踏堡,你說我怎么就攤上這事≈渚ⅲ” “怎么了顷蟆?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長腐魂。 經(jīng)常有香客問我帐偎,道長,這世上最難降的妖魔是什么蛔屹? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任削樊,我火速辦了婚禮,結(jié)果婚禮上兔毒,老公的妹妹穿的比我還像新娘漫贞。我一直安慰自己,他們只是感情好育叁,可當我...
    茶點故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布迅脐。 她就那樣靜靜地躺著,像睡著了一般豪嗽。 火紅的嫁衣襯著肌膚如雪谴蔑。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天龟梦,我揣著相機與錄音隐锭,去河邊找鬼。 笑死计贰,一個胖子當著我的面吹牛钦睡,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播躁倒,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼赎婚,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了樱溉?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤纬凤,失蹤者是張志新(化名)和其女友劉穎福贞,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體停士,經(jīng)...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡挖帘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年完丽,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拇舀。...
    茶點故事閱讀 39,919評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡逻族,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出骄崩,到底是詐尸還是另有隱情聘鳞,我是刑警寧澤,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布要拂,位于F島的核電站抠璃,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏脱惰。R本人自食惡果不足惜搏嗡,卻給世界環(huán)境...
    茶點故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望拉一。 院中可真熱鬧采盒,春花似錦、人聲如沸蔚润。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽抽碌。三九已至悍赢,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間货徙,已是汗流浹背左权。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留痴颊,地道東北人赏迟。 一個月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像蠢棱,于是被迫代替她去往敵國和親锌杀。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,864評論 2 354

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