利用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代码绘制可爱的Hello Kitty猫
Aug 03 HTML / CSS
CSS3转换功能transform主要属性值分析及实现分享
May 06 HTML / CSS
结合CSS3的布局新特征谈谈常见布局方法
Jan 22 HTML / CSS
CSS3的first-child选择器实战攻略
Apr 28 HTML / CSS
HTML5 Canvas中使用路径描画二阶、三阶贝塞尔曲线
Jan 01 HTML / CSS
使用HTML5里的classList操作CSS类
Jun 28 HTML / CSS
html5唤醒APP小记
Mar 27 HTML / CSS
手摸手教你用canvas实现给图片添加平铺水印的实现
Aug 20 HTML / CSS
原生canvas制作画图小工具的踩坑和爬坑
Jun 09 HTML / CSS
html5跳转小程序wx-open-launch-weapp踩坑
Dec 02 HTML / CSS
CSS文本阴影 text-shadow 悬停效果详解
May 25 HTML / CSS
html中两种获取标签内的值的方法
Jun 10 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输出控制功能在简繁体转换中的应用
2006/10/09 PHP
smarty循环嵌套用法示例分析
2016/07/19 PHP
Laravel下生成验证码的类
2017/11/15 PHP
Jquery中LigerUi的弹出编辑框(实现方法)
2013/07/09 Javascript
js setTimeout()函数介绍及应用以倒计时为例
2013/12/12 Javascript
javascript函数定义的几种区别小结
2014/01/06 Javascript
json属性名为什么要双引号(个人猜测)
2014/07/31 Javascript
js实现表单Radio切换效果的方法
2015/08/17 Javascript
jQuery学习心得总结(必看篇)
2016/06/10 Javascript
js与jquery分别实现tab标签页功能的方法
2016/11/18 Javascript
利用js+css+html实现固定table的列头不动
2016/12/08 Javascript
Javascript中常用类型的格式化方法小结
2016/12/26 Javascript
jQuery.Form实现Ajax上传文件同时设置headers的方法
2017/06/26 jQuery
使用JQ完成表格隔行换色的简单实例
2017/08/25 Javascript
AngularJS实现的输入框字数限制提醒功能示例
2017/10/26 Javascript
微信实现自动跳转到用其他浏览器打开指定APP下载
2019/02/15 Javascript
使用vue实现通过变量动态拼接url
2020/07/22 Javascript
理解JavaScript中的Proxy 与 Reflection API
2020/09/21 Javascript
Vue-router中hash模式与history模式的区别详解
2020/12/15 Vue.js
python抓取京东价格分析京东商品价格走势
2014/01/09 Python
python显示天气预报
2014/03/02 Python
linux查找当前python解释器的位置方法
2019/02/20 Python
在python中将list分段并保存为array类型的方法
2019/07/15 Python
开启Django博客的RSS功能的实现方法
2020/02/17 Python
opencv 图像加法与图像融合的实现代码
2020/07/08 Python
CSS实现定位元素居中的方法
2015/06/23 HTML / CSS
HTML5 Web Workers之网站也能多线程的实现
2013/04/24 HTML / CSS
自荐信格式
2013/12/01 职场文书
好人好事事迹材料
2014/02/12 职场文书
营销总监岗位职责范本
2014/02/26 职场文书
竞选班长演讲稿500字
2014/08/22 职场文书
捐款感谢信
2015/01/20 职场文书
航班延误投诉信
2015/07/02 职场文书
2015年学校教研室主任工作总结
2015/07/20 职场文书
防震减灾主题班会
2015/08/14 职场文书
面试必问:圣杯布局和双飞翼布局的区别
2021/05/13 HTML / CSS