table的滚动和行定位效果

Posted 你七啊?

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了table的滚动和行定位效果相关的知识,希望对你有一定的参考价值。

tabel的表头信息固定 而内容滚动;实现:当div的内容超过样式设置的width 、height时会出现相应的横向、纵向滚动条。利用这个让table的内容超过规定值时,自动出现滚动条。

而设置两个table;一个为表头信息、一个为内容。内容用一个div,包起来。连个table对齐即可。

 

定位效果:scrollTop()可以获取设设置当前滚动条距离顶层的高度,offset()获取匹配元素到当前窗口的相对位移,而top顾名思义;而最终得到元素到当前窗口的高度相对偏移量;

offset()根据当前行显示的位置而变,并不是固定的。



行定位的核心代码:scrollTo.offset().top - tab.offset().top + tab.scrollTop()
//思路:定位行高度量-顶部高度量 +当前滚动条位置高度

 

代码:

  1 <!DOCTYPE html>
  2 <html>
  3 <head>
  4     <meta charset="utf-8">
  5     <title>测试</title>
  6 
  7    <script src="../js/jquery-1.7.2.min.js"></script>
  8 
  9  <style type="text/css">
 10 
 11     #tables{
 12         width:800px;
 13         height: 400px;
 14     }
 15     
 16     #tablehead{
 17         width: 100%;
 18         height: 60px;
 19         border: 1px solid black;
 20     }
 21 
 22     #tableContent{
 23         width:100%;
 24         height:300px;
 25         overflow-x:hidden;/*隐藏横向滚动条*/
 26         overflow-y:auto;
 27         border:1px solid black;
 28 
 29     }
 30     
 31     table{
 32         width: 100%;
 33         text-align:center;
 34     }
 35     td{
 36         font-family: ‘楷体‘;
 37         border:1px solid #e7ebef;
 38     }
 39 
 40  </style>
 41 </head>
 42 <body>
 43 
 44     <div id="tables">
 45         <div id="tablehead">
 46             <table id="tabhead">
 47                 <tr>
 48                     <td style="width:8%;height:60px;">序号</td>
 49                     <td style="width:67%;height:60px;">xx</td>
 50                     <td style="width:25%;height:60px;">xx</td>
 51                 </tr>
 52             </table>
 53         </div>
 54         <div id="tableContent">
 55             <table id="tabledata">
 56                 <tr>
 57                     <td style="width:8%;height:60px;">1</td>
 58                     <td style="width:67%;height:60px;">xx</td>
 59                     <td style="width:25%;height:60px;">xx</td>
 60                 </tr>
 61                 <tr>
 62                     <td style="width:8%;height:60px;">2</td>
 63                     <td style="width:67%;height:60px;">xx</td>
 64                     <td style="width:25%;height:60px;">xx</td>
 65                 </tr>
 66                 <tr>
 67                     <td style="width:8%;height:60px;">3</td>
 68                     <td style="width:67%;height:60px;">xx</td>
 69                     <td style="width:25%;height:60px;">xx</td>
 70                 </tr>
 71                 <tr>
 72                     <td style="width:8%;height:60px;">4</td>
 73                     <td style="width:67%;height:60px;">xx</td>
 74                     <td style="width:25%;height:60px;">xx</td>
 75                 </tr>
 76                 <tr>
 77                     <td style="width:8%;height:60px;">5</td>
 78                     <td style="width:67%;height:60px;">xx</td>
 79                     <td style="width:25%;height:60px;">xx</td>
 80                 </tr>
 81                 <tr>
 82                     <td style="width:8%;height:60px;">6</td>
 83                     <td style="width:67%;height:60px;">xx</td>
 84                     <td style="width:25%;height:60px;">xx</td>
 85                 </tr>
 86                 <tr>
 87                     <td style="width:8%;height:60px;">7</td>
 88                     <td style="width:67%;height:60px;">xx</td>
 89                     <td style="width:25%;height:60px;">xx</td>
 90                 </tr>
 91             </table>
 92         </div>
 93         
 94     </div>
 95     
 96     <button onclick="scollerLocation(2)">第3行</button>
 97     <button onclick="scollerLocation(1)">第2行</button>
 98     <button onclick="scollerLocation(3)">第4行</button>
 99     <button onclick="scollerLocation(5)">第6行</button>
100     <!-- 索引从0开始所以 第2行索引为1 以此类推-->
101 <script type="text/javascript">
102 
103             //楼层定位显示
104             function scollerLocation(Nfloor){
105                     
106                     // alert(Nfloor);
107                     var tab = $(#tableContent); //具有滚动条的div
108                     var scrollTo = tab.find("tr").eq(Nfloor); //获取指定行的元素 思路定位行高度量-顶部高度量 +当前滚动条位置高度
109                     
110                      
111                     tab.scrollTop( 
112                         scrollTo.offset().top - tab.offset().top + tab.scrollTop() 
113                     );
114                     
115 
116             }
117 
118 
119         
120 </script>
121 </body>
122 </html>

 

以上是关于table的滚动和行定位效果的主要内容,如果未能解决你的问题,请参考以下文章

layerui 页面定位和行定位

如何让table 表头随着滚动条滚动? 达到覆盖效果。 JS 、JQ大神求帮忙。

让table表头固定,tr超出指定条数后无缝上下循环滚动jquery效果代码

让table表头固定,tr超出指定条数后无缝上下循环滚动jquery效果代码

CSS代码片段

CSS代码片段