前言

最近在做vue移动端项目,需要做一个可以固定表头首列的表格,而且由于一些原因不能使用任何UI插件,网上找了很久也没什么好方法,所以在解决了问题之后,写下了这篇文章供后来人参考,文章有什么错漏的问题欢迎评论交流。

效果

思路

要实现固定首行首列

除了使用各种UI框架插件外,那就是自己用原生写啦

首先我们理一下思路

如何固定首行首列呢?

可能每个人有不同的想法

我这里当然介绍的是我自己的想法

那就是把首列表头和表格主内容分割开来,如下图

不过这样虽然固定了表头首列

但还是不能实现我们想要的效果

因为你会发现当你滑动tbody的时候

表头和首列并不会移动

相信聪明的你已经有了解决的办法了

那就是给tbody添加一个滑动监听

滑动的时候会触发事件

引起表头和首列的移动

这就是本文固定表头首列的思路

代码实现

template:

v-for = "(b,index) in header"

v-if="index==0">

{{b}}

ref="firstColLayer"

data-_ref="firstColLayer"

>

{{c}}

ref="firstRowLayer"

data-_ref="firstRowLayer">

v-for = "(b,index) in header"

v-if="index!=0 && index!=1"

style="width:101px"

>

{{b}}

style="overflow:scroll"

ref="tableContainer"

@scroll="tableDivScroll($event)"

>

v-if="index!=0 && index!=1"

>

{{c}}

JavaScript:

module.exports = (function(that) {

return {

data: function(that) {

const tableHeader = that.dataSheet;

const dataSheet = that.dataSheet;

return {

dataSheet: dataSheet,

tableHeader: tableHeader,

};

},

methods: {

tableDivScroll (event) {

const $target = this.$refs.tableContainer

// 首行固定

this.$refs.firstRowLayer.scrollLeft = $target.scrollLeft

// 首列固定

this.$refs.firstColLayer.scrollTop = $target.scrollTop

},

//定一个生命周期钩子监听变动

mounted:function () {

let maxHeight = window.screen.height

document.body.style.overflow='hidden';

this.$refs.right.style.width=""+this.$refs.table.offsetWidth-107+"px";//这里的减107是减去左侧div宽度

console.log(this.placeholderTop)

}

}

})(this);

CSS:

body{

overflow:hidden

}

.pages{

height:100%;

overflow:hidden;

}

.content{

margin-top:73px;

margin-left:17px;

width:100%;

}

.left-content{

width:101px;

float:left;

}

.right-content{

float:left

}

.table-body{

width:100%;

overflow:auto;

}

.table-head{

width:100%;

overflow:hidden;

}

.left-content .table-body{

overflow:hidden;

}

.table-left .table{

height:400px;

background-color:#FFFFFF;

overflow:hidden;

margin-right:0;

padding-right:0;

}

table::-webkit-scrollbar{display:none}

.content-table th, .full-table th{

font-size:14px;

font-family:PingFangSC-Regular;

background:#EAEFF3;

font-weight:400;

color:#176BED;

height:40px;

line-height:40px;

text-align:center;

}

.content-table td, .full-table td {

line-height: 35px;

text-align: center;

word-wrap: break-word;

word-wrap: normal\0;

overflow: hidden;

-o-text-overflow: ellipsis;

text-overflow: ellipsis;

}

th,td p{

width:101px;

display: inline-block;

line-height:14px;

padding:auto 0;

margin:auto 0;

vertical-align: middle;

}

.content-table {

display:block;

background-color:#FFFFFF;

}

thead,tbody{

background-color:#FFFFFF;

}

Ps:有什么问题可以在评论区一起探讨

el table 固定表头和首行_vue表格实现固定表头首列相关推荐

  1. html首行缩进语言,css如何设置首行缩进2字符?

    用CSS实现段落首缩进两个字符.应该使用首行缩进text-indent.text-indent可以使得容器内首行缩进一定单位. 在这里我们需要了解一种长度单位em.em是相对长度单位.相对于当前对象内 ...

  2. 换行样式不要首行缩进_CSS实现文章段落首行缩进两个字符不再每次空格

    段落前面空两个字的距离,不要再使用空格了.应该使用首行缩进text-indent.text-indent可以使得容器内首行缩进一定单位.比如中文段落一般每段前空两个汉字. 代码如下: p{ text- ...

  3. mySQL首行缩进快捷键_如何实现首行缩进效果

    可以通过CSS中的text-indent属性来实现首行缩进效果 我们在写页面的时候,尤其是碰到那些文本内容过多导致页面效果不好看时,这时我们可以通过首行缩进的方法来使文章内容更加有层次感.我们可以通过 ...

  4. php段落首行缩进2字符,利用wordpress首行缩进代码,搞定文章首行缩进2字符!

    越来越多的小伙伴喜欢用wordpress来搭建个人网站,但是很多人对wordpress并不是很熟悉,所以在使用过程中经常遇到各种各样的问题,比如寻小山在2005年刚刚开始写博客的时候,使用的wordp ...

  5. php文本首行缩进,html设置页面文本首行缩进

    text-indent属性介绍 属性值单位:em,1em 就代表缩进1个字,2em缩进2个字...... 注意:text-indent属性的值支持为负数. (相关教程推荐:html入门教程) 演示代码 ...

  6. html首行下沉效果,CSS样式 | 段落首字下沉

    HTML+CSS 实现段落首字下沉 HTML5学堂:在项目中,时常能看到了一种文字展示的特殊效果--首字下沉(如图).于是花了几分钟考虑了一下使用方法,脑测之后,又敲了敲代码实现了一下,写出来与大家分 ...

  7. html首行字放大标签,CSS设置首字放大

    CSS设置首字放大 在很多的文章中,都有一个首字放大的效果,在CSS中同样可以实现该效果. CSS中通过对第一个字,进行单独的设置从而实现该效果. 首字放大 中秋节是远古天象崇拜--敬月习俗的遗痕.据 ...

  8. html首行下沉效果,css仿word首字下沉效果示例

    css首个文字下沉效果 用过word的大部分人都知道,word里有一个首字下沉功能,在文章的排版时用,有时能给文章增色不少. 用css仿word的首字下沉功能,不用修改代码,只用到css的伪元素:fi ...

  9. word首行在表格内容多时被挤到表格最后问题

    1.问题描述 (1)word表格前面有一行文字描述,当表格行数或内容增多时,该一行文字描述被挤到表格后面了. (2)word表格行数或内容增多时,表格压在了页脚上面. 2.问题产生原因 (1)至今不清 ...

最新文章

  1. Oracle批量导出AWR报告
  2. video processing on Mac and iOS
  3. 设计模式之 Singleton 单例模式
  4. 索引处理类的设计与实现
  5. 1022 Digital Library (30 分) 【难度: 中 / 知识点: 哈希表】
  6. leetcode刷题实录:1
  7. 分类图 Class Diagram
  8. Muduo 网络编程示例之五: 测量两台机器的网络延迟
  9. catia2017安装包打开没反应_云顶手游10.19安装包,9月16日
  10. 刚刚,无人驾驶公司Roadstar,发公告把联合创始人开除了
  11. 默认参数和命名关键字参数(1)
  12. shell unzip,zip
  13. WEB2.0概念诠释
  14. 破解密码——利用粘滞键漏洞破解Windows 7 PIN
  15. 【有限元分析】电力塔架ansys有限元模型
  16. matlab 变限积分计算,Matlab变限积分计算【方法教程】
  17. HTML与CSS3的知识整理
  18. 慕课网风袖小程序 一一第一阶段
  19. 冰汽朋克侦查机器人_冰汽时代机器流玩法 寒霜朋克机器人流玩法怎么玩
  20. 长安大学转计算机专业,长安大学本科学生转换专业管理办法

热门文章

  1. ES19-Java API全文搜索
  2. PyMOTW-3 (Python 3 Module of the Week) 翻译团队召集
  3. Oracle数据库imp
  4. JQ focus blur focusin focuseout
  5. SQL Server-流程控制 6,WaitFor 语句
  6. 【转】热门3D游戏视觉效果名词简介
  7. 读《世界靠懒人来支撑》有感
  8. 更改路由器的外网IP
  9. Enterprise Library 系列教程
  10. 【Oracle】Oracle中使用转义字符