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 :
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 = ''; for(var i=0; i<15; i++) { tr += '<tr>\ <td>'+i+'</td>\ <td>'+i+'</td>\ <td>'+i+'</td>\ <td>'+i+'</td>\ <td>'+i+'</td>\ <td>'+i+'</td>\ <td>'+i+'</td>\ <td>'+i+'</td>\ <td>'+i+'</td>\ <td>'+i+'</td>\ <td>'+i+'</td>\ <td>'+i+'</td>\ <td>'+i+'</td>\ <td>'+i+'</td>\ <td>'+i+'</td>\ </tr>'; } 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 = $('.box'); boxEle.addEventListener('scroll', function(e) { this.querySelector('thead').style.transform = 'translate(0, '+this.scrollTop+'px)'; }); } </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 !