利用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线性渐变简单实现以及该属性在浏览器中的不同
Dec 12 HTML / CSS
CSS3制作ajax loader icon实现思路及代码
Aug 25 HTML / CSS
使用CSS3在触屏上为按钮实现激活效果
Sep 27 HTML / CSS
CSS3使用transition属性实现过渡效果
Apr 18 HTML / CSS
HTML5 拖拽批量上传文件的示例代码
Mar 28 HTML / CSS
HTML5 canvas画图并保存成图片的jcanvas插件
Jan 17 HTML / CSS
HTML5未来发展趋势
Feb 01 HTML / CSS
H5调用相机拍照并压缩图片的实例代码
Jul 20 HTML / CSS
如何避免常见的6种HTML5错误用法
Nov 06 HTML / CSS
如何给HTML标签中的文本设置修饰线
Nov 18 HTML / CSS
几款流行的HTML5 UI框架比较(小结)
Apr 08 HTML / CSS
CSS3实现三角形不断放大效果
Apr 13 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
Zend公司全球首推PHP认证
2006/10/09 PHP
[原创]PHPCMS遭遇会员投稿审核无效的解决方法
2017/01/11 PHP
浅谈PHP中的面向对象OOP中的魔术方法
2017/06/12 PHP
Laravel模型事件的实现原理详解
2018/03/14 PHP
简单的php购物车代码
2020/06/05 PHP
javascript支持firefox,ie7页面布局拖拽效果代码
2007/12/20 Javascript
seaJs的模块定义和模块加载浅析
2014/06/06 Javascript
javascript实现客户端兼容各浏览器创建csv并下载的方法
2015/03/23 Javascript
jQuery中extend()和fn.extend()方法详解
2015/06/03 Javascript
Bootstrap Table服务器分页与在线编辑应用总结
2016/08/08 Javascript
jQuery使用deferreds串行多个ajax请求
2016/08/22 Javascript
Javascript 数组去重的方法(四种)详解及实例代码
2016/11/24 Javascript
详解nodejs异步I/O和事件循环
2017/06/07 NodeJs
微信小程序-滚动消息通知的实例代码
2017/08/03 Javascript
解决Jstree 选中父节点时被禁用的子节点也会选中的问题
2017/12/27 Javascript
Node.js使用Angular简单示例
2018/05/11 Javascript
Node.js 进程平滑离场剖析小结
2019/01/24 Javascript
[50:48]LGD vs CHAOS 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Django中几种重定向方法
2015/04/28 Python
利用PyInstaller将python程序.py转为.exe的方法详解
2017/05/03 Python
python中pylint使用方法(pylint代码检查)
2018/04/06 Python
Python同步遍历多个列表的示例
2019/02/19 Python
Python项目 基于Scapy实现SYN泛洪攻击的方法
2019/07/23 Python
python+mysql实现个人论文管理系统
2019/10/25 Python
python 微信好友特征数据分析及可视化
2020/01/07 Python
Python属性和内建属性实例解析
2020/01/14 Python
使用layui框架实现点击左侧导航切换右侧内容且右侧选项卡跟随变化的效果
2020/11/10 HTML / CSS
精致的手工皮鞋:Shoe Embassy
2019/11/08 全球购物
普天C++笔试题
2016/03/20 面试题
优秀学生事迹材料
2014/02/08 职场文书
2014年教研活动总结范文
2014/04/26 职场文书
2014年妇女工作总结
2014/12/06 职场文书
公司奖励通知
2015/04/21 职场文书
2016高考冲刺决心书
2015/09/23 职场文书
MySQL创建表操作命令分享
2022/03/25 MySQL
PHP正则表达式之RCEService回溯
2022/04/11 PHP