最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

elementUI Table組件實(shí)現(xiàn)表頭吸頂效果(示例代碼)

 更新時(shí)間:2025年01月23日 11:17:16   作者:熱忱1128  
文章介紹了如何在vue2.6+和elementUI環(huán)境下實(shí)現(xiàn)el-table組件的表頭吸頂效果,通過(guò)添加樣式、注冊(cè)指令、引入指令并在父元素中避免使用overflow:hidden,可以實(shí)現(xiàn)場(chǎng)景下表頭始終可見,本文通過(guò)實(shí)例代碼介紹的非常詳細(xì),感興趣的朋友一起看看吧

需求描述

當(dāng) table 內(nèi)容過(guò)多的時(shí)候,頁(yè)面上滑滾動(dòng),表頭的信息也會(huì)隨著被遮擋,無(wú)法將表頭信息和表格內(nèi)容對(duì)應(yīng)起來(lái),需要進(jìn)行表頭吸頂

開始編碼??

環(huán)境:vue2.6+、element UI
step1:el-table__header-wrapper加上樣式

//style/sticky-table-header.scss
.el-table[is-sticky] {
  overflow: initial;
  --sticky-top: 0px;
  --stick-zIndex: 5;
  .el-table__header-wrapper{
    position: sticky;
    top: var(--sticky-top);
    z-index: var(--stick-zIndex);
  }
  .el-table__fixed, .el-table__fixed-right{
    overflow: visible;
    z-index: var(--stick-zIndex);
    .el-table__fixed-header-wrapper {
      position: sticky;
      top: var(--sticky-top);
      width: 100%;
      overflow: hidden;
      z-index: var(--stick-zIndex);
    }
    .el-table__fixed-body-wrapper {
      width: 100%;
      overflow: hidden;
    }
  }
  .el-table__fixed-right {
    .el-table__fixed-header-wrapper {
      display: flex;
      justify-content: flex-end;
    }
    .el-table__fixed-body-wrapper {
      display: flex;
      justify-content: flex-end;
    }
  }
  &.el-table--border::after{
    z-index: var(--stick-zIndex);
  }
}
.el-table__fixed {
  --box-shadow: 10px 0 10px -10px rgba(0, 0, 0, 0.12);
}
.el-table__fixed-right {
  --box-shadow: -10px 0 10px -10px rgba(0, 0, 0, 0.12);
}
.el-table__fixed, .el-table__fixed-right {
  box-shadow: var(--box-shadow);
}

step2: 注冊(cè)指令 directives/sticky-header.js

import '@/styles/sticky-table-header.scss'
export default {
  bind(el, binding) {
    el.setAttribute('is-sticky', true)
    updateStickyTop(el, binding)
  },
  update(el, binding) {
    updateStickyTop(el, binding)
  }
}
const updateStickyTop = (el, binding) => {
  const { value, oldValue } = binding
  if (value === oldValue) return
  const top = Number(value)
  if (!isNaN(top)) {
    el.style.setProperty('--sticky-top', `${top}px`)
  }
}

step3: main.js 引入

import StickyTableHeader from './directives/sticky-header'
Vue.directive('sticky-table-header', StickyTableHeader)

step4: table.vue

<template>
  <div class="wrapper">
    <h3>純CSS表格吸頂</h3>
    <el-radio-group v-model="mode" aria-hidden="true" class="options">
      <el-radio label="normal">正常模式</el-radio>
      <el-radio label="fixedLeft">固定左邊列</el-radio>
      <el-radio label="fixedRight">固定右邊列</el-radio>
      <el-radio label="fixedLeftRight">固定左右列</el-radio>
    </el-radio-group>
    <el-table
      v-sticky-table-header="0"
      border
      :data="tableData"
    >
      <el-table-column label="日期" prop="date" min-width="150" :fixed="fixedLeft" />
      <el-table-column label="姓名" prop="name" width="120" />
      <el-table-column label="省份" prop="province" width="120" />
      <el-table-column label="市區(qū)" prop="city" width="120" />
      <el-table-column label="地址" prop="address" width="300" />
      <el-table-column label="郵編" prop="zip" min-width="120" :fixed="fixedRight" />
    </el-table>
  </div>
</template>
<script>
export default {
  name: 'CSSFixedTopTable',
  components: {},
  data() {
    const tableData = new Array(100).fill(0).map((_, index) => {
      return {
        date: '2016-05-03',
        name: '王小虎',
        province: '上海',
        city: '普陀區(qū)',
        address: `上海市普陀區(qū)金沙江路 ${1 + index} 弄`,
        zip: 2000001 + index
      }
    })
    return {
      tableData,
      mode: 'normal'
    }
  },
  computed: {
    fixedLeft() {
      return /left/i.test(this.mode) ? 'left' : null
    },
    fixedRight() {
      return /right/i.test(this.mode) ? 'right' : null
    }
  },
  methods: {}
}
</script>
<style lang="scss" scoped>
.wrapper {
  width: 800px;
  margin: 0 auto;
  .options {
    width: 100%;
    margin: 30px 0;
    text-align: left;
  }
}
</style>

??????父元素不要有 overflow: hidden;會(huì)失效

step5: 效果呈現(xiàn)??

到此這篇關(guān)于elementUI Table組件實(shí)現(xiàn)表頭吸頂效果的文章就介紹到這了,更多相關(guān)elementUI Table組件表頭吸頂內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 前端Vue.js實(shí)現(xiàn)json數(shù)據(jù)導(dǎo)出到doc

    前端Vue.js實(shí)現(xiàn)json數(shù)據(jù)導(dǎo)出到doc

    這篇文章主要介紹了前端Vue.js實(shí)現(xiàn)json數(shù)據(jù)導(dǎo)出到doc,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09
  • vue二級(jí)菜單導(dǎo)航點(diǎn)擊選中事件的方法

    vue二級(jí)菜單導(dǎo)航點(diǎn)擊選中事件的方法

    今天小編就為大家分享一篇vue二級(jí)菜單導(dǎo)航點(diǎn)擊選中事件的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-09-09
  • 詳解如何制作并發(fā)布一個(gè)vue的組件的npm包

    詳解如何制作并發(fā)布一個(gè)vue的組件的npm包

    這篇文章主要介紹了詳解如何制作并發(fā)布一個(gè)vue的組件的npm包,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-11-11
  • keep-alive不能緩存多層級(jí)路由菜單問題解決

    keep-alive不能緩存多層級(jí)路由菜單問題解決

    這篇文章主要介紹了keep-alive不能緩存多層級(jí)路由菜單問題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • 利用vue+elementUI實(shí)現(xiàn)部分引入組件的方法詳解

    利用vue+elementUI實(shí)現(xiàn)部分引入組件的方法詳解

    這篇文章主要給大家介紹了關(guān)于利用vue+elementUI實(shí)現(xiàn)部分引入組件的相關(guān)資料,以及介紹了vue引入elementUI報(bào)錯(cuò)的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-11-11
  • Electron進(jìn)程間通信的實(shí)現(xiàn)

    Electron進(jìn)程間通信的實(shí)現(xiàn)

    本文主要介紹了Electron進(jìn)程間通信的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • vue3中update:modelValue的使用與不生效問題解決

    vue3中update:modelValue的使用與不生效問題解決

    現(xiàn)在vue3的使用越來(lái)越普遍了,vue3這方面的學(xué)習(xí)我們要趕上,下面這篇文章主要給大家介紹了關(guān)于vue3中update:modelValue的使用與不生效問題的解決方法,需要的朋友可以參考下
    2022-03-03
  • Vue WatchEffect函數(shù)創(chuàng)建高級(jí)偵聽器

    Vue WatchEffect函數(shù)創(chuàng)建高級(jí)偵聽器

    watchEffect傳入的函數(shù)會(huì)被立即執(zhí)行一次,并且在執(zhí)行的過(guò)程中會(huì)收集依賴;其次,只有收集的依賴發(fā)生變化時(shí),watchEffect傳入的函數(shù)才會(huì)再次執(zhí)行
    2023-03-03
  • Vue動(dòng)態(tài)加載異步組件的方法

    Vue動(dòng)態(tài)加載異步組件的方法

    這篇文章主要介紹了Vue動(dòng)態(tài)加載異步組件的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-11-11
  • 詳解vue-cli 構(gòu)建項(xiàng)目 vue-cli請(qǐng)求后臺(tái)接口 vue-cli使用axios、sass、swiper

    詳解vue-cli 構(gòu)建項(xiàng)目 vue-cli請(qǐng)求后臺(tái)接口 vue-cli使用axios、sass、swiper

    本文通過(guò)實(shí)例代碼給大家詳細(xì)介紹了vue-cli 構(gòu)建項(xiàng)目 vue-cli請(qǐng)求后臺(tái)接口 vue-cli使用axios、sass、swiper的相關(guān)知識(shí),需要的朋友可以參考下
    2018-05-05

最新評(píng)論

平原县| 九龙城区| 岗巴县| 怀安县| 深州市| 浮山县| 汪清县| 永清县| 泸西县| 牟定县| 井冈山市| 永修县| 桐庐县| 马关县| 扎囊县| 榆树市| 贡觉县| 桐城市| 名山县| 富阳市| 洛隆县| 延吉市| 兴安县| 张家口市| 阿荣旗| 富民县| 济南市| 靖边县| 阳原县| 黄浦区| 华坪县| 荃湾区| 杭锦后旗| 太湖县| 大余县| 盐亭县| 香河县| 嘉善县| 平湖市| 邵武市| 七台河市|