利用css3 translate完美实现表头固定效果


Posted in HTML / CSS onFebruary 28, 2017

前言

前段时间在工作中正好需要这个功能,但是找了很多都不能完美的实现,所以在此就自己做了一个固定表头的方法,主要用到了css3中的translate和一小段js代码,下面来一起看看吧。

效果如下:

利用css3 translate完美实现表头固定效果

感觉是不是很和谐,而且代码也少,不足的是IE9以下不支持translate属性,但现在也没多少要考滤IE9以下的兼容了吧,做前端老兼顾低版本的浏览器难免会让自己束手束脚。。。。

下面来看下代码吧

HTML

<div class="box">
    <table>
        <thead>
            <tr>
                <th>1</th>
                <th>2</th>
                <th>3</th>
                <th>4</th>
                <th>5</th>
                <th>6</th>
                <th>7</th>
                <th>8</th>
                <th>9</th>
                <th>10</th>
                <th>11</th>
                <th>12</th>
                <th>13</th>
                <th>14</th>
                <th>15</th>
            </tr>
        </thead>
        <tbody>
            <script>
            var tr = '';
            for(var i=0; i<15; i++) {
                tr += '<tr>\
                        <td>'+i+'</td>\
                        <td>'+i+'</td>\
                        <td>'+i+'</td>\
                        <td>'+i+'</td>\
                        <td>'+i+'</td>\
                        <td>'+i+'</td>\
                        <td>'+i+'</td>\
                        <td>'+i+'</td>\
                        <td>'+i+'</td>\
                        <td>'+i+'</td>\
                        <td>'+i+'</td>\
                        <td>'+i+'</td>\
                        <td>'+i+'</td>\
                        <td>'+i+'</td>\
                        <td>'+i+'</td>\
                    </tr>';
            }
            document.write(tr);
            </script>                
        </tbody>
    </table>
</div>

CSS样式

<style>
*{ margin: 0; padding: 0; list-style: none;}
.box {
    width: 300px;
    height: 300px;
    margin: 50px auto 0;
    overflow: auto;
}
.box table{
    width: 100%;
    border-collapse: collapse;
    border-right: 1px solid #ccc;
    border-top: 1px solid #ccc;
    text-align: center;
}
.box table thead {
    background-color: #ccc;
}
.box table th,
.box table td {
    padding: 8px 10px;
    border-left: 1px solid #ccc;
    border-bottom: 1px solid #ccc;
    white-space: nowrap;
}
</style>

JS脚本

<script>
window.onload = function() {
    var $ = document.querySelector.bind(document);
    var boxEle = $('.box');
    boxEle.addEventListener('scroll', function(e) {
        this.querySelector('thead').style.transform = 'translate(0, '+this.scrollTop+'px)';
    });
}
</script>

总结

好了,以上就是这篇文章的全部内容了,代码是不是真的很少呢,还在等什么?快点感受一下吧。希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

HTML / CSS 相关文章推荐
利用CSS3的checked伪类实现OL的隐藏显示的方法
Dec 18 HTML / CSS
7款设计巧妙的css3飘带状3D立体效果的导航菜单和表单窗口
Feb 04 HTML / CSS
纯CSS3制作的简洁蓝白风格的登录模板(非IE效果更好)
Aug 11 HTML / CSS
详解CSS3中nth-child与nth-of-type的区别
Jan 05 HTML / CSS
详解css3使用transform出现字体模糊的解决办法
Oct 16 HTML / CSS
详解H5本地储存Web Storage
Jul 03 HTML / CSS
HTML5 Convas APIs方法详解
Apr 24 HTML / CSS
localstorage和sessionstorage使用记录(推荐)
May 23 HTML / CSS
canvas生成带二维码海报的踩坑记录
Sep 11 HTML / CSS
HTML5输入框下拉菜单功能的示例代码
Sep 08 HTML / CSS
css实现两栏布局,左侧固定宽,右侧自适应的多种方法
Aug 07 HTML / CSS
css3 选择器
May 11 HTML / CSS
纯CSS3实现Material Design效果
Mar 09 #HTML / CSS
CSS3实现精美横向滚动菜单按钮
Apr 14 #HTML / CSS
真正了解CSS3背景下的@font face规则
May 04 #HTML / CSS
手把手教你用纯css3实现轮播图效果实例
May 04 #HTML / CSS
使用HTML5和CSS3表单验证功能
May 05 #HTML / CSS
CSS3实现任意图片lowpoly动画效果实例
May 11 #HTML / CSS
利用纯CSS3实现文字向右循环闪过效果实例(可用于移动端)
Jun 15 #HTML / CSS
You might like
PHP+Tidy-完美的XHTML纠错+过滤
2007/04/10 PHP
PHP实现的比较完善的购物车类
2014/12/02 PHP
PHP的PDO操作简单示例
2016/03/30 PHP
浅谈PHP中的数据传输CURL
2016/09/06 PHP
基于Laravel5.4实现多字段登录功能方法示例
2017/08/11 PHP
不要在cookie中使用特殊字符的原因分析
2010/07/13 Javascript
JavaScript中的正则表达式简明总结
2014/04/04 Javascript
使用GruntJS构建Web程序之合并压缩篇
2014/06/06 Javascript
不同编码的页面表单数据乱码问题解决方法
2015/02/15 Javascript
JQuery动态添加和删除表格行的方法
2015/03/09 Javascript
JavaScript里四舍五入函数round用法实例
2015/04/06 Javascript
JS+CSS实现仿msn风格选项卡效果代码
2015/10/22 Javascript
JavaScript函数学习总结以及相关的编程习惯指南
2015/11/16 Javascript
超精准的javascript验证身份证号的具体实现方法
2015/11/18 Javascript
JavaScript必知必会(六) delete in instanceof
2016/06/08 Javascript
JavaScript简单生成 N~M 之间随机数的方法
2017/01/13 Javascript
js 博客内容进度插件详解
2017/02/19 Javascript
Bootstrap fileinput组件封装及使用详解
2017/03/10 Javascript
详解如何用webpack打包一个网站应用项目
2017/07/12 Javascript
Vue中计算属性computed的示例解读
2017/07/26 Javascript
js实现从右往左匀速显示图片(无缝轮播)
2020/06/29 Javascript
javascript实现贪吃蛇小练习
2020/07/05 Javascript
详解vue组件之间的通信
2020/08/30 Javascript
vue将文件/图片批量打包下载zip的教程
2020/10/21 Javascript
python if not in 多条件判断代码
2016/09/21 Python
django框架如何集成celery进行开发
2017/05/24 Python
python根据文章标题内容自动生成摘要的实例
2019/02/21 Python
python画环形图的方法
2020/03/25 Python
Python稀疏矩阵及参数保存代码实现
2020/04/18 Python
英国手工布艺沙发在线购买:Sofas & Stuff
2018/03/02 全球购物
Trench London官方网站:高级风衣和意大利皮夹克
2020/07/11 全球购物
高三英语教学反思
2014/01/13 职场文书
健康教育评估方案
2014/05/25 职场文书
党员反对四风问题思想汇报
2014/09/12 职场文书
暂停营业通知
2015/04/25 职场文书
pycharm debug 断点调试心得分享
2021/04/16 Python