前端#表格冻结

表格冻结

表格冻结的基本思路

1.将表格头元素复制到新的元素内(复制到一个新的div内)

2.新元素使用绝对定位,将新元素位置与表格头元素位置对齐

示例

	function doFreezeDataTableHeader(tableId) {
		//1.创建包装器
		var tmpWrap = $('<div></div>').css({
			'position':'relative'
		});
		var tmpTableWrap = $('#'+tableId).parent();
		tmpTableWrap.wrap(tmpWrap);
		//2.创建虚拟表头
		var visualHeaderDiv = $('<div></div>').css({
			'clear':'both',
			'overflow':'hidden',
			'position':'absolute',
			'width':$(tmpTableWrap).outerWidth(true)
		});
		//3.复制header
		var dupTableObj = $('#' + tableId).clone(true);
		//清空ID
		var tableIdHeader = tableId + '_header';
		dupTableObj.attr('id',tableIdHeader);
		dupTableObj.find('tbody').remove();
		dupTableObj.appendTo(visualHeaderDiv);
		//4.修复表头
		$('#'+tableId).find('thead tr:eq(0)>th').each(function(index,elem){
			dupTableObj.find('thead th:eq(' + index + ')').width($(elem).width()).css('min-width',$(elem).width());
		});
		//呈现
		visualHeaderDiv.insertBefore(tmpTableWrap);
		$('#'+tableId).parent().scroll(function(eveData){
			console.log($(this).scrollLeft() + ":" + $(this).scrollTop());
			visualHeaderDiv.scrollTop($(this).scrollTop()).scrollLeft($(this).scrollLeft());
		});


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值