美文网首页
element-table横向自适应

element-table横向自适应

作者: 二荣xxx | 来源:发表于2022-08-28 23:10 被阅读0次

写在前面:我前两天遇到了一个听起来很常见的需求,就是element-table组件在内容宽度超过table宽度后显示横向滚动条。在我写的时候发现,table并没有提供这样一个功能。所以就需要自己去算出内容最长的宽度,给到table,超出了就会自动有滚动条

知识点一、动态的ref

因为要知道最长的元素宽度,所以得知道每一行的宽度再取最大值。这个功能一般用动态的ref可以实现
根据数据给每一行添加ref,这个ref一定得是唯一值

 <template v-slot:content="{ row }">
     <div class="vte-table__div--content" :ref="row.content">
       <span>{{row.content}}</span>
     </div>
 </template>

在获取数据时获取对应的元素

const widthList = []
setTimeout(() => {
     res.data.map(item => {
        //  算出每一行内容的宽度然后放到一起
        const width = this.$refs[item.content].clientWidth
        widthList.push(width)
     })
      const columns = this.$refs.tablePro.columns
      // 并取出最大值,并付给需要超出滚动的地方
      columns[8].minWidth = (Math.max(...widthList) + 40) | 100
}, 0)

知识点二、元素的渲染顺序

在以上代码中可以看到,我在拿宽度的时候加了setTimeout。因为直接拿的宽度是0,但是我打印出来又是正确的,冥想三分钟之后。发现这个问题好像之前碰到过...,就是因为数据刚出来,元素还没渲染上去,所以拿的宽度是0,得等他一会再拿数据

相关文章

  • element-table横向自适应

    写在前面:我前两天遇到了一个听起来很常见的需求,就是element-table组件在内容宽度超过table宽度后显...

  • 饿了么组件table

    element-table A element-table component for Vue.js. Demo ...

  • CSS&JS一些问题

    实现div横向排列,元素往两边撑, 中间自动撑开空格。在父元素里设置 背景图片自适应div 背景图片自适应 tex...

  • 历代网页布局方式

    1.表格布局 2.DIV+CSS布局 float:left向左边横向自适应 3.flex布局 row 行disp...

  • 【iOS】关于UILabel和UITextField的AutoL

    遇到一种情况,当UILabel和UITextField横向布局时,我希望的结果是Label自适应文字内容,text...

  • flex自适应横向滚动区域

    效果如图 使用时只需要把scroll-view移动到需要自适应滚动撑满的地方就可以这是纵向例子:flex自适应滚动...

  • 垂直滚动

    需求: 顶部固定高度 底部固定高度 中间高度自适应,并且可以出发内部滚动而不出现横向滚动和垂直动条 解决方式一:中...

  • flex 伸缩项属性

    使用使用flex做横向布局时,常常有左边固定宽度,右边自适应占满的需求,这个时候右面元素一般会使用flex:1 属...

  • 百度图片横向瀑布流自适应 flex

    百度图片横向瀑布流自适应 参考大佬们的写法 这里要注意flex-grow: 1;是等比分配剩余空间,img默认是有...

  • element-table的tr的hover事件及苹果滚动条

    element-table的tr,hover事件,scss或者less中使用::v-deep 苹果滚动条 如果要全...

网友评论

      本文标题:element-table横向自适应

      本文链接:https://www.haomeiwen.com/subject/ptacnrtx.html