首頁 > web前端 > css教學 > 主體

詳解利用css3 translate完美實現表頭固定效果範例

高洛峰
發布: 2017-03-06 11:15:35
原創
1787 人瀏覽過

前言

前段時間在工作中正好需要這個功能,但是找了很多都不能完美的實現,所以在此就自己做了一個固定表頭的方法,主要用到了css3中的translate和一小段js程式碼,下面來一起看看吧。

效果如下:

详解利用css3 translate完美实现表头固定效果示例

#感覺是不是很和諧,而且程式碼也少,不足的是IE9以下不支援translate屬性,但現在也沒多少要考濾IE9以下的兼容了吧,做前端老兼顧低版本的瀏覽器難免會讓自己束手束腳。 。 。 。

下面來看下程式碼吧

#HTML

<p 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 = &#39;&#39;;
            for(var i=0; i<15; i++) {
                tr += &#39;<tr>\
                        <td>&#39;+i+&#39;</td>\
                        <td>&#39;+i+&#39;</td>\
                        <td>&#39;+i+&#39;</td>\
                        <td>&#39;+i+&#39;</td>\
                        <td>&#39;+i+&#39;</td>\
                        <td>&#39;+i+&#39;</td>\
                        <td>&#39;+i+&#39;</td>\
                        <td>&#39;+i+&#39;</td>\
                        <td>&#39;+i+&#39;</td>\
                        <td>&#39;+i+&#39;</td>\
                        <td>&#39;+i+&#39;</td>\
                        <td>&#39;+i+&#39;</td>\
                        <td>&#39;+i+&#39;</td>\
                        <td>&#39;+i+&#39;</td>\
                        <td>&#39;+i+&#39;</td>\
                    </tr>&#39;;
            }
            document.write(tr);
            </script>                
        </tbody>
    </table>
</p>
登入後複製

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 = $(&#39;.box&#39;);
    boxEle.addEventListener(&#39;scroll&#39;, function(e) {
        this.querySelector(&#39;thead&#39;).style.transform = &#39;translate(0, &#39;+this.scrollTop+&#39;px)&#39;;
    });
}
</script>
登入後複製
#########更多詳解利用css3 translate完美實現表頭固定效果範例相關文章請關注PHP中文網! ###
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!