米葫芦网

JS组件系列之Bootstrap Table冻结列功能IE浏览器兼容性问题怎么解决?解决方案分享

热度:7℃ 发布时间:2024-07-03 00:25:11

最近项目里面需要用到表格的冻结列功能,所谓“冻结列”,就是某些情况下表格的列比较多,需要固定前面的几列,后面的列滚动。遗憾的是,bootstrap table里自带的fixed column功能有一点bug,于是和同事讨论该如何解决,于是就有了这篇文章。

一、起因回顾

最近项目里面有一个表格需求,该表格列是动态产生的,而且列的数量操作一定值以后就会出现横向滚动条,滚动的时候需要前面几列固定。也就是所谓的excel的冻结列功能。该如何实现呢?不用多说,当然是查文档,于是找到了这篇http://issues.wenzhixin.net.cn/bootstrap-table/index.html#extensions/fixed-columns.html。谷歌浏览器效果如下:

第一列固定

JS组件系列之Bootstrap Table冻结列功能IE浏览器兼容性问题怎么解决?解决方案分享JS组件系列之Bootstrap Table冻结列功能IE浏览器兼容性问题怎么解决?解决方案分享貌似问题完美解决!可是,事与愿违,很遗憾,上面说了,这是谷歌浏览器的效果,没有问题。我们来看看IE里面

IE11效果:

JS组件系列之Bootstrap Table冻结列功能IE浏览器兼容性问题怎么解决?解决方案分享JS组件系列之Bootstrap Table冻结列功能IE浏览器兼容性问题怎么解决?解决方案分享

IE10效果:

JS组件系列之Bootstrap Table冻结列功能IE浏览器兼容性问题怎么解决?解决方案分享JS组件系列之Bootstrap Table冻结列功能IE浏览器兼容性问题怎么解决?解决方案分享

很显然,不管是IE内核版本多少,冻结的列里面的内容都无法显示。怎么办?这可为难死宝宝了!

二、解决方案

还好有万能的开源,查看该页面源代码发现可以找到冻结列这个js的源码。

JS组件系列之Bootstrap Table冻结列功能IE浏览器兼容性问题怎么解决?解决方案分享JS组件系列之Bootstrap Table冻结列功能IE浏览器兼容性问题怎么解决?解决方案分享

点击进入可以看到这个js的所有源码,找到源码就好办了,我们试着改改源码看是否能解决这个bug。

我们在bootstrap-table下面的extensions文件夹下面新增加一个文件夹fixed-column

JS组件系列之Bootstrap Table冻结列功能IE浏览器兼容性问题怎么解决?解决方案分享JS组件系列之Bootstrap Table冻结列功能IE浏览器兼容性问题怎么解决?解决方案分享

下面就贴出我们改好的源码:

JS组件系列之Bootstrap Table冻结列功能IE浏览器兼容性问题怎么解决?解决方案分享

JS组件系列之Bootstrap Table冻结列功能IE浏览器兼容性问题怎么解决?解决方案分享

JS组件系列之Bootstrap Table冻结列功能IE浏览器兼容性问题怎么解决?解决方案分享

主要修改的地方:

1)源码里面将thead和tbody分别封装成了一个单独的表格,修改后将thead和tbody放到了一个table里面;

2)依次遍历冻结的列放入到固定的tbody里面;

其实也就改了那么几个地方,就能完美解决IE的bug。我们先来看看效果:

IE11

JS组件系列之Bootstrap Table冻结列功能IE浏览器兼容性问题怎么解决?解决方案分享JS组件系列之Bootstrap Table冻结列功能IE浏览器兼容性问题怎么解决?解决方案分享

IE10

JS组件系列之Bootstrap Table冻结列功能IE浏览器兼容性问题怎么解决?解决方案分享JS组件系列之Bootstrap Table冻结列功能IE浏览器兼容性问题怎么解决?解决方案分享

IE8

JS组件系列之Bootstrap Table冻结列功能IE浏览器兼容性问题怎么解决?解决方案分享JS组件系列之Bootstrap Table冻结列功能IE浏览器兼容性问题怎么解决?解决方案分享

我们再来看看如何使用。

1、引用js和对应的css

JS组件系列之Bootstrap Table冻结列功能IE浏览器兼容性问题怎么解决?解决方案分享

2、js调用如下

JS组件系列之Bootstrap Table冻结列功能IE浏览器兼容性问题怎么解决?解决方案分享JS组件系列之Bootstrap Table冻结列功能IE浏览器兼容性问题怎么解决?解决方案分享

加两个参数fixedColumns和fixedNumber即可,什么意思不用过多解释,是否冻结列、冻结列的列数。还有一点需要说明的是,这里调用的时候不能指定它的height,如果指定height,表格的冻结显示会有问题。


网友评论
评论
发 布

更多软件教程
  • 软件教程推荐
更多+
Greenfoot设置中文的方法

Greenfoot设置中文的方法

Greenfoot是一款简单易用的Java开发环境,该软件界面清爽简约,既可以作为一个开发框使用,也能够作为集成开发环境使用,操作起来十分简单。这款软件支持多种语言,但是默认的语言是英文,因此将该软件下载到电脑上的时候,会发现软件的界面语言是英文版本的,这对于英语基础较差的朋友来说,使用这款软件就会...

07-05

Egret UI Editor修改快捷键的方法

Egret UI Editor修改快捷键的方法

Egret UI Editor是一款开源的2D游戏开发代码编辑软件,其主要功能是针对Egret项目中的Exml皮肤文件进行可视化编辑,功能十分强大。我们在使用这款软件的过程中,可以将一些常用操作设置快捷键,这样就可以简化编程,从而提高代码编辑的工作效率。但是这款软件在日常生活中使用得不多,并且专业性...

07-05

KittenCode新建项目的方法

KittenCode新建项目的方法

KittenCode是一款十分专业的编程软件,该软件给用户提供了可视化的操作界面,支持Python语言的编程开发以及第三方库管理,并且提供了很多实用的工具,功能十分强大。我们在使用这款软件进行编程开发的过程中,最基本、最常做的操作就是新建项目,因此我们很有必要掌握新建项目的方法。但是这款软件的专业性...

07-05

Thonny设置中文的方法

Thonny设置中文的方法

Thonny是一款十分专业的Python编辑软件,该软件界面清爽简单,给用户提供了丰富的编程工具,具备代码补全、语法错误显示等功能,非常的适合新手使用。该软件还支持多种语言,所以在下载这款软件的时候,有时候下载到电脑中的软件是英文版本的,这对于英语基础较差的小伙伴来说,使用这款软件就会变得十分困难,...

07-05

最新软件下载