利用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 完美实现圆角效果
Jul 13 HTML / CSS
通过CSS3的object-fit来调整图片适配尺寸的技巧简介
Feb 27 HTML / CSS
详解CSS3中强大的filter(滤镜)属性
Jun 29 HTML / CSS
css3实现元素环绕中心点布局的方法示例
Jan 15 HTML / CSS
CSS3实现王者荣耀匹配人员加载页面的方法
Apr 16 HTML / CSS
CSS3动画和HTML5新特性详解
Aug 31 HTML / CSS
教你如何一步一步用Canvas写一个贪吃蛇
Oct 22 HTML / CSS
Html5实现单张、多张图片上传功能
Apr 28 HTML / CSS
HTML5之SVG 2D入门4—笔画与填充
Jan 30 HTML / CSS
HTML5实现WebSocket协议原理浅析
Jul 07 HTML / CSS
Canvas引入跨域的图片导致toDataURL()报错的问题的解决
Sep 19 HTML / CSS
canvas绘图按照contain或者cover方式适配并居中显示
Feb 18 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读MYSQL中文乱码的解决方法
2006/12/17 PHP
浅析PHP中的字符串编码转换(自动识别原编码)
2013/07/02 PHP
PHP的消息通信机制测试实例
2016/11/10 PHP
PHP使用Session实现上传进度功能详解
2019/08/06 PHP
phpwind放自动注册方法
2006/12/02 Javascript
js 图片等比例缩放代码
2010/05/13 Javascript
jquery validate使用攻略 第四步
2010/07/01 Javascript
jquery中ajax跨域方法实例分析
2015/12/18 Javascript
JavaScript中数组去除重复的三种方法
2016/04/22 Javascript
NodeJS连接MongoDB数据库时报错的快速解决方法
2016/05/13 NodeJs
js实现省市级联效果分享
2017/08/10 Javascript
ES6解构赋值的功能与用途实例分析
2017/10/31 Javascript
angular学习之动态创建表单的方法
2018/12/07 Javascript
JS造成内存泄漏的几种情况实例分析
2020/03/02 Javascript
JS sort方法基于数组对象属性值排序
2020/07/10 Javascript
[11:42]2018DOTA2国际邀请赛寻真——OG卷土重来
2018/08/17 DOTA
[05:26]TI10典藏宝瓶套装外观展示
2020/07/03 DOTA
用Python编写web API的教程
2015/04/30 Python
快速排序的算法思想及Python版快速排序的实现示例
2016/07/02 Python
实例讲解Python中整数的最大值输出
2019/03/17 Python
Python错误的处理方法
2020/06/23 Python
葡萄牙鞋子品牌:Fair
2016/12/10 全球购物
德国机车企业:FC-Moto
2017/10/27 全球购物
Maison Lab荷兰:名牌Outlet购物
2018/08/10 全球购物
IGK Hair官网:喷雾、洗发水、护发素等
2020/11/03 全球购物
什么是组件架构
2016/05/15 面试题
客服文员岗位职责
2013/11/29 职场文书
土木建筑学生自我评价
2014/01/14 职场文书
父亲追悼会答谢词
2014/01/17 职场文书
工程造价专业大学生职业生涯规划书
2014/01/18 职场文书
酒店管理毕业生自我鉴定
2014/03/02 职场文书
社会实践评语
2014/04/28 职场文书
民族学专业求职信
2014/07/28 职场文书
学生会竞选演讲稿怎么写
2014/08/26 职场文书
毕业设计指导教师评语
2014/12/30 职场文书
单位接收函范文
2015/01/30 职场文书