最近在项目中遇到需要固定表头的需求,虽然网上有很多种方法,但大部分是要写两个table的,而我们现有的项目不想在jsp页面里增加代码或者html结构,最后在试了很多方法后使用css3的transform解决了这个问题,现在把解决这个问题的思路和过程及代码贴出来,欢迎大家斧正。
$(function(){
var scrollTop;
var frameWidow = window.parent.document.getElementById('mainFrame');//获取表格所在的iframe元素
$(frameWidow).load(function(){ //监听iframe是否加载完
var frameWidow1 = frameWidow.contentWindow;
$(frameWidow1).scroll(function() { //监听iframe的滚动
scrollTop = document.documentElement.scrollTop == 0 ? document.body.scrollTop : document.documentElement.scrollTop; //iframe滚动的高度 使用jquery的方式获取不兼容
//给th设置transform
$('thead tr th').css({ //由于给thead设置transform对IE无效 所以对th设置transform
'-webkit-transform': 'translate(0, '+scrollTop+'px)',
'-moz-transform': 'translate(0, '+scrollTop+'px)',
'-ms-transform': 'translate(0, '+scrollTop+'px)',
'transform': 'translate(0, '+scrollTop+'px)'
});
})
})
})