实现效果:

<template><div :style="{ height: scrollerHeight + 'px' }"><div><Input v-model="searchForm.name" icon="md-search" style="width: 30%;" @keyup.enter.native="search()"></Input></div><br><Table:columns="columns":data="data"></Table><div style="margin-top: 5px;float: right;"><Page:total="dataCount":current="tCurrentPage":page-size="pageSize":page-size-opts="pageSizeOpts"show-totalshow-sizersize="small"@on-change="changepage"@on-page-size-change="changeSize"></Page></div></div>
</template>
<script>
export default {data () {return {columns: [{title: "Name",key: "name"},{title: "Age",key: "age"},{title: "Address",key: "address"}],data: [],searchForm: {name: ''},dataCount: 0, // 初始化信息总条数pageSize: 1,pageSizeOpts: [10, 15, 20],allTableData: [], // 用于分页数据存放filterData: [], // 用于存放搜索条件下的数据tCurrentPage: 1,scrollerHeight: window.innerHeight - 130 // 130指的是table表头的高度 + 除table外,其他模版占的高度(input、margin、padding、page等),需要自己大致算一下!!};},mounted () {// 添加监听事件listenResizeFn, 用来监听页面高度的变化window.addEventListener("resize", this.listenResizeFn)},beforeDestroy () {// 移除绑定的listenResizeFn事件监听window.removeEventListener('resize', this.listenResizeFn)},watch: {scrollerHeight (val, oldVal) {console.log('scrollerHeight Change: ' + val, oldVal)return val - 130 // 跟初始化同理}},created () {this.init() // 后台接口获取table数据},methods: {init () {// 这里是api接口拿数据的地方,拿到数据先缓存起来,方便页面input的搜索条件进行数据的查询this.allTableData = [{name: "John Brown",age: 18,address: "New York No. 1 Lake Park",date: "2016-10-03"},{name: "Jim Green",age: 24,address: "London No. 1 Lake Park",date: "2016-10-01"},{name: "Joe Black",age: 30,address: "Sydney No. 1 Lake Park",date: "2016-10-02"},{name: "Jon Snow",age: 26,address: "Ottawa No. 2 Lake Park",date: "2016-10-04"},{name: "Jon Snow2",age: 26,address: "Ottawa No. 2 Lake Park",date: "2016-10-04"},{name: "Jon Snow3",age: 26,address: "Ottawa No. 2 Lake Park",date: "2016-10-04"},{name: "Jon Snow4",age: 26,address: "Ottawa No. 2 Lake Park",date: "2016-10-04"},{name: "Jon Snow5",age: 26,address: "Ottawa No. 2 Lake Park",date: "2016-10-04"},{name: "Jon Snow6",age: 26,address: "Ottawa No. 2 Lake Park",date: "2016-10-04"},{name: "Jon Snow7",age: 26,address: "Ottawa No. 2 Lake Park",date: "2016-10-04"},{name: "Jon Snow8",age: 26,address: "Ottawa No. 2 Lake Park",date: "2016-10-04"},{name: "Jon Snow9",age: 26,address: "Ottawa No. 2 Lake Park",date: "2016-10-04"},{name: "Jon Snow10",age: 26,address: "Ottawa No. 2 Lake Park",date: "2016-10-04"},{name: "Jon Snow11",age: 26,address: "Ottawa No. 2 Lake Park",date: "2016-10-04"},{name: "Jon Snow12",age: 26,address: "Ottawa No. 2 Lake Park",date: "2016-10-04"},{name: "Jon Snow13",age: 26,address: "Ottawa No. 2 Lake Park",date: "2016-10-04"},{name: "Jon Snow14",age: 26,address: "Ottawa No. 2 Lake Park",date: "2016-10-04"},{name: "Jon Snow15",age: 26,address: "Ottawa No. 2 Lake Park",date: "2016-10-04"},{name: "Jon Snow16",age: 26,address: "Ottawa No. 2 Lake Park",date: "2016-10-04"},{name: "Jon Snow17",age: 26,address: "Ottawa No. 2 Lake Park",date: "2016-10-04"},{name: "Jon Snow18",age: 26,address: "Ottawa No. 2 Lake Park",date: "2016-10-04"},{name: "Jon Snow19",age: 26,address: "Ottawa No. 2 Lake Park",date: "2016-10-04"},{name: "Jon Snow20",age: 26,address: "Ottawa No. 2 Lake Park",date: "2016-10-04"},{name: "Jon Snow21",age: 26,address: "Ottawa No. 2 Lake Park",date: "2016-10-04"},{name: "Jon Snow22",age: 26,address: "Ottawa No. 2 Lake Park",date: "2016-10-04"},{name: "Jon Snow23",age: 26,address: "Ottawa No. 2 Lake Park",date: "2016-10-04"},{name: "Jon Snow24",age: 26,address: "Ottawa No. 2 Lake Park",date: "2016-10-04"}]this.search()},search () {// 这里是对表格中出现的所有数据进行的模糊搜索,只要包含search的搜索条件,均返回其结果!!this.filterData = []this.allTableData.filter(item => {let flag = trueObject.keys(item).map(key => {if (JSON.stringify(item[key]) && JSON.stringify(item[key]).toLowerCase().indexOf(this.searchForm.name.toLowerCase()) !== -1 && flag) {this.filterData.push(item)flag = false}})})this.showCurrentPage(this.filterData)},showCurrentPage (params) {this.tCurrentPage = 1this.pageSize = parseInt(this.scrollerHeight / 48) // 48代表的是当前table的tr高度, 【 当前页的条数 = 当前获取的高度 / tr的高度 】// 保存所有条数this.dataCount = params.length// 初始化显示,小于每页显示条数,全显,大于每页显示条数,取前每页条数显示if (this.dataCount < this.pageSize) {// 当total< pageSize,应该只有[pageSize]this.pageSize = this.dataCountthis.pageSizeOpts = [this.dataCount]this.data = params} else {this.pageSizeOpts = [this.pageSize, this.pageSize + 5, this.pageSize + 10]this.data = params.slice(0, this.pageSize)}},changepage (index) {this.tCurrentPage = indexvar _start = (index - 1) * this.pageSizevar _end = index * this.pageSizethis.data = this.filterData.slice(_start, _end)},changeSize (size) {this.pageSize = sizevar _start = (this.tCurrentPage - 1) * sizevar _end = this.tCurrentPage * sizethis.data = this.filterData.slice(_start, _end)},listenResizeFn () {console.log('处理窗口缩放时要处理的逻辑操作!')this.scrollerHeight = window.innerHeight - 130this.showCurrentPage(this.allTableData)},}
}
</script>
处理窗口缩放

我们习惯性使用下面的方法:

 window.onresize = () => {return (() => {// 缩放执行的操作!!})
}

但是上述方法在onresize被多次调用时,会导致触发执行的相关操作未生效!这是因为onresize本身就是一个回调函数,当其改变的时候,前一个就会被覆盖。

解决办法:事件监听 addEventListener(event , function, useCapture)
其中, event: 监听的事件,不需要加前缀;function: 事件触发之后调用的函数;useCapture: true为捕获,false为冒泡

mounted () {// 添加监听事件listenResizeFn, 用来监听页面高度的变化window.addEventListener("resize", this.listenResizeFn)
},
beforeDestroy () {// 移除绑定的listenResizeFn事件监听window.removeEventListener('resize', this.listenResizeFn)
},
methods: {listenResizeFn () {console.log('处理窗口缩放时要处理的逻辑操作!')}
}

iview-table实现自适应高度渲染表格条数相关推荐

  1. html表格高度自动调整,table表格自适应高度的办法

    这篇文章主要为大家详细介绍了table表格自适应高度的办法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,有需要的朋友可以收藏方便以后借鉴. 关于自适应高度,361源码在以前给大家介绍过ifram ...

  2. html表格高度适应屏幕,Table的自适应高度

    第一种:一定高度内容加多时自适应高度,而内容少时DIV有一定最小高度:div {  _height:200px; /* css 注解: 仅IE6设别此属性,假定最低高度是200px ,设置高度 jQu ...

  3. iview table 自定义列_基于VueJS的render渲染函数打造一款非常强大的IView 的Table组件...

    1.render渲染函数的介绍 字符串模板的代替方案,允许你发挥 JavaScript 最大的编程能力.该渲染函数接收一个 createElement 方法作为第一个参数用来创建 VNode. 如果组 ...

  4. alter table add column多个字段_ElementUI表格el-table表头固定自适应高度解决方案

    一.前言 ElementUI.iView都以相同的方式提供了表格组件表头固定的方法,即设置组件的height属性.表头固定很重要,就在于当表格数据项很多时,滚动条出现在表格组件内,而不是出现在表格组件 ...

  5. iview table组件里的 固定列 表格不自适应问题

    当在使用iview Table组件里固定列功能时 出现表格不自适应宽度问题 具体如下 解决这个bug 很简单 把组件里的 width 改为 minWidth 即可 columns: [{title: ...

  6. vue移动端表格吸顶、行自适应高度、列左侧固定悬浮

    简介 1.表头吸顶效果 2.左侧列固定,右侧滑动,表头跟随内容滑动 3.行高自适应 番外 最近上海疫情,居家办公一月多了,愿阴霾散去.最近网上在正常得市民抱怨中,有很多别有用心之人,数典忘祖,造谣生事 ...

  7. layui的轮播图片自适应大小_解决Layui 表格自适应高度的问题

    解决Layui 表格自适应高度的问题 鄙人在写一个项目,发现成功将数据在页面显示后, 高度没有自适应,而是将一些按钮遮挡了,不断的调试和网上寻找解决办法,发现没有效果,最后添加了一句css .layu ...

  8. Iframe用法的详细讲解(属性、透明、自适应高度)和html中滚动条属性设置

    Iframe 用法的详细讲解(属性.透明.自适应高度)和html中滚动条属性设置 scrollbar属性.样式详解 1. overflow内容溢出时的设置(设定被设定对象是否显示滚动条) overfl ...

  9. 编写自适应高度的 textarea

    文本框是很常见的输入控件,我相信只要写过表单的肯定接触过 textarea 这个元素. OK.但是现在产品经理说了:需要这个文本框可以根据用户输入内容自适应其高度. height: auto 有些初学 ...

最新文章

  1. iptables mangle表研究(未完)
  2. 解决win10系统中截图异常放大的问题
  3. solr7.4 centos7安装
  4. Ubuntu系统显卡驱动、CUDA、CUDNN安装(二CUDA和CUDNN)
  5. (转载)Android studio 导入或依赖第三方库失败
  6. Java Foundation serial ( 一 )
  7. 74HC595芯片引脚,功能介绍【250字】【原创】
  8. Flutter 分享功能之Share
  9. CAD怎么快速用计算机加面积,CAD如何利用“命令”快速计算图形面积
  10. LeNet-5 手写字体识别模型
  11. 转: 特征值和特征向量--1
  12. 三角形面积的勾股定理
  13. 静默活体检测-人脸活体识别
  14. surging教学视频资源汇总
  15. 8个企业微信的功能,你知道几个,喜欢用哪个?
  16. IOS13图标尺寸_更新iOS13后,我的5台iPhone都废了
  17. requireJS 加载css、less文件
  18. Three.js物理引擎与物体的相互作用——关联材质对摩擦力弹性影响、物体运动方式、作用力相关
  19. Arduino Tutorial: Avoiding the Overflow Issue When Using millis() and micros()
  20. 面试完,为什么总是让回去等通知?

热门文章

  1. android蓝牙广播自定义,Android 蓝牙相关的广播
  2. H3C防火墙基于IP地址的安全策略配置
  3. 巴黎的十个最浪漫的地方(图)
  4. jdi屏幕斜纹_教你如何分辨小米NOTE3小米6等手机是什么屏幕与其他信息
  5. 深读源码-java同步系列之StampedLock源码解析
  6. 名为dash的蓝色插嘴小机器人_Dash Dot儿童智能机器人 | 孩子们的高科技玩具,“家有大眼萌”Dash Dot机器人体验-极果...
  7. Python安装常见问题处理
  8. CentOS如何安装向日葵并调用
  9. graphpad细胞增殖曲线_GraphPad Prism绘制剂量反应曲线
  10. 明略数据首发行业人工智能大脑 “明智系统” 从个体赋能到全局智能