固定表头,在ie和火狐浏览器下滚动时会抖动,怎么处理

<!DOCTYPE html>
<html lang="zh-cn">
<head>

<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="renderer" content="webkit" />
<title>头部固定的表格</title>
<link rel="stylesheet" href="http://cdn.bootcss.com/bootstrap/3.3.5/css/bootstrap.css" />
<script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js" ></script>
<script type="text/javascript" src="http://apps.bdimg.com/libs/bootstrap/3.3.4/js/bootstrap.min.js" ></script>
<style>
    body {
        padding-top: 100px;
       
    }
    #goodsList {
        padding: 0;
        height: 400px;
        overflow-y: scroll;
    }
    .fixTable thead {
        background-color: #fff; 
    }
</style>

</head>
<body>

<div id="goodsList" class="col-xs-offset-3 col-xs-6">

<table id="textTable" class="table table-bordered scrollTable">
    <thead>
    <tr>
        <th width="35%">姓名</th>
        <th width="25%">年龄</th>
        <th width="20%">性别</th>
        <th width="10%">身高</th>
        <th width="10%">体重</th>
    </tr>
    </thead>
    <tbody id="testTbody"></tbody>
</table>

</div>

<script type="text/javascript">


$(document).ready(function () {

    var html = '',
        $ele = $('#testTbody');
    for(var i = 0; i < 20; i++) {
        html += "<tr><td>123456</td><td>12345</td><td>1234</td><td>123</td><td>12</td></tr>";
    }
    $ele.empty().append(html);

    var $fixTable = $('#goodsList .fixTable');
    $('#goodsList').scroll(function() {
        var id = '#' + this.id;
        var scrollTop = $(id).scrollTop() || $(id).get(0).scrollTop,
            style = {
                'position': 'absolute',
                'left': '0',
                'right': '0',
                'top': scrollTop + 'px'
            };
        if ($fixTable.length) {
            (scrollTop === 0) ? $fixTable.addClass('hidden') : $fixTable.removeClass('hidden');
            $fixTable.css(style);
        } else {
            var html = $(id + ' .scrollTable thead').get(0).innerHTML;
            var table = $('<table class="table table-bordered fixTable"><thead>' + html + '</thead></table>');
            table.css(style);
            $(id).append(table);
            $fixTable = $(this).find('.fixTable');
        }
    });
})

</script>
</body>
</html>

阅读 3.2k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题