Maison  >  Article  >  interface Web  >  Explication détaillée de l'exemple d'utilisation de la traduction CSS3 pour obtenir parfaitement l'effet fixe de l'en-tête du tableau

Explication détaillée de l'exemple d'utilisation de la traduction CSS3 pour obtenir parfaitement l'effet fixe de l'en-tête du tableau

高洛峰
高洛峰original
2017-03-06 11:15:351794parcourir

Avant-propos

J'avais juste besoin de cette fonction au travail il y a quelque temps, mais après beaucoup de recherches, je n'ai pas pu la réaliser parfaitement, donc ici, je vais le présenter moi-même. J'ai créé une méthode pour corriger l'en-tête du tableau, principalement en utilisant la traduction en CSS3 et un petit morceau de code js. Jetons-y un coup d'œil ensemble.

L'effet est le suivant :

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

C'est très harmonieux, et il y a peu de codes. L'inconvénient est qu'IE9 et les versions antérieures ne prennent pas en charge l'attribut de traduction, mais il n'y a désormais plus grand chose à tester pour la compatibilité sous IE9. Lorsque vous utilisez le front-end, vous serez inévitablement contraint de prendre en compte les versions inférieures des navigateurs. . . .

Jetons un coup d'oeil au code

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>

Style 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>

Script 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>

Pour des explications plus détaillées sur la façon d'utiliser la traduction CSS3 pour réaliser parfaitement l'exemple d'effet fixe d'en-tête, veuillez faire attention au site Web PHP chinois pour les articles connexes !

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn