利用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画一个阴阳八卦图
Mar 09 HTML / CSS
css3弹性盒模型实例介绍
May 27 HTML / CSS
使用CSS3的appearance属性改变元素的外观的方法
Dec 12 HTML / CSS
css 元素选择器的简单实例
May 23 HTML / CSS
CSS3中animation实现流光按钮效果
Dec 21 HTML / CSS
使用HTML5 IndexDB存储图像和文件的示例
Nov 05 HTML / CSS
html5 拖拽上传图片实例演示
Apr 01 HTML / CSS
html5教程制作简单画板代码分享
Dec 04 HTML / CSS
遮罩层 + Iframe实现界面自动显示的示例代码
Apr 26 HTML / CSS
AmazeUI 单选框和多选框的实现示例
Aug 18 HTML / CSS
使用Html+Css实现简易导航栏功能(导航栏遇到鼠标切换背景颜色)
Apr 07 HTML / CSS
background-position百分比原理详解
May 08 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 数组的创建、调用和更新实现代码
2009/03/09 PHP
PHP弹出提示框并跳转到新页面即重定向到新页面
2014/01/24 PHP
PHP入门教程之日期与时间操作技巧总结(格式化,验证,获取,转换,计算等)
2016/09/11 PHP
PHP框架laravel的.env文件配置教程
2017/06/07 PHP
js类 from qq
2006/11/13 Javascript
通过Jquery遍历Json的两种数据结构的实现代码
2011/01/19 Javascript
浅析jquery某一元素重复绑定的问题
2014/01/03 Javascript
遮罩层点击按钮弹出并且具有拖动和关闭效果(两种方法)
2015/08/20 Javascript
jquery中实现时间戳与日期相互转换
2016/04/12 Javascript
JSON对象 详解及实例代码
2016/10/18 Javascript
鼠标点击input,显示瞬间的边框颜色,对之修改与隐藏实例
2016/12/26 Javascript
Angular实现点击按钮控制隐藏和显示功能示例
2017/12/29 Javascript
浅谈React中组件间抽象
2018/01/27 Javascript
Angular2 自定义表单验证器的实现方法
2018/12/14 Javascript
微信小程序textarea层级过高(盖住其他元素)问题的解决办法
2019/03/04 Javascript
vue v-for 点击当前行,获取当前行数据及event当前事件对象的操作
2020/09/10 Javascript
深入解析Python编程中super关键字的用法
2016/06/24 Python
详解Python3操作Mongodb简明易懂教程
2017/05/25 Python
理论讲解python多进程并发编程
2018/02/09 Python
Python3.5内置模块之time与datetime模块用法实例分析
2019/04/27 Python
Python imageio读取视频并进行编解码详解
2019/12/10 Python
pytorch之ImageFolder使用详解
2020/01/06 Python
django创建超级用户时指定添加其它字段方式
2020/05/14 Python
什么是python的id函数
2020/06/11 Python
网络艺术零售业的先驱者:artrepublic
2017/09/26 全球购物
精伦电子Java笔试题
2013/01/16 面试题
招商业务员岗位职责
2013/12/16 职场文书
投标邀请书范文
2014/01/31 职场文书
党员公开承诺书内容
2014/05/20 职场文书
国庆节演讲稿范文2014
2014/09/19 职场文书
四风问题对照检查材料思想汇报
2014/10/07 职场文书
个人先进材料范文
2014/12/30 职场文书
2015年支教教师工作总结
2015/07/22 职场文书
2016年国庆节新闻稿范文
2015/11/25 职场文书
导游词之湖北梁子湖
2019/11/07 职场文书
手写实现JS中的new
2021/11/07 Javascript