Heim > Web-Frontend > HTML-Tutorial > [转] js实现html table 行,列锁定_html/css_WEB-ITnose

[转] js实现html table 行,列锁定_html/css_WEB-ITnose

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2016-06-24 11:45:11
Original
1107 Leute haben es durchsucht

js实现html table 表头,指定列锁定

实现效果如下:

感兴趣的朋友可以直接复制出来运行看效果。

  1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  2 <html xmlns="http://www.w3.org/1999/xhtml">  3 <head>  4     <title>new document</title>  5     <script type="text/javascript"  6             src="http://code.jquery.com/jquery-1.6.1.min.js"></script>  7       8     <script type="text/javascript">  9         function FixTable(TableID, FixColumnNumber, width, height) { 10             /// <summary> 11             ///     锁定表头和列 12             ///     <para> sorex.cnblogs.com </para> 13             /// </summary> 14             /// <param name="TableID" type="String"> 15             ///     要锁定的Table的ID 16             /// </param> 17             /// <param name="FixColumnNumber" type="Number"> 18             ///     要锁定列的个数 19             /// </param> 20             /// <param name="width" type="Number"> 21             ///     显示的宽度 22             /// </param> 23             /// <param name="height" type="Number"> 24             ///     显示的高度 25             /// </param> 26             if ($("#" + TableID + "_tableLayout").length != 0) { 27                 $("#" + TableID + "_tableLayout").before($("#" + TableID)); 28                 $("#" + TableID + "_tableLayout").empty(); 29             } 30             else { 31                 $("#" + TableID).after("<div id='" + TableID + "_tableLayout' style='overflow:hidden;height:" + height + "px; width:" + width + "px;'></div>"); 32             } 33             $('<div id="' + TableID + '_tableFix"></div>' 34             + '<div id="' + TableID + '_tableHead"></div>' 35             + '<div id="' + TableID + '_tableColumn"></div>' 36             + '<div id="' + TableID + '_tableData"></div>').appendTo("#" + TableID + "_tableLayout"); 37             var oldtable = $("#" + TableID); 38             var tableFixClone = oldtable.clone(true); 39             tableFixClone.attr("id", TableID + "_tableFixClone"); 40             $("#" + TableID + "_tableFix").append(tableFixClone); 41             var tableHeadClone = oldtable.clone(true); 42             tableHeadClone.attr("id", TableID + "_tableHeadClone"); 43             $("#" + TableID + "_tableHead").append(tableHeadClone); 44             var tableColumnClone = oldtable.clone(true); 45             tableColumnClone.attr("id", TableID + "_tableColumnClone"); 46             $("#" + TableID + "_tableColumn").append(tableColumnClone); 47             $("#" + TableID + "_tableData").append(oldtable); 48             $("#" + TableID + "_tableLayout table").each(function () { 49                 $(this).css("margin", "0"); 50             }); 51             var HeadHeight = $("#" + TableID + "_tableHead thead").height(); 52             HeadHeight += 2; 53             $("#" + TableID + "_tableHead").css("height", HeadHeight); 54             $("#" + TableID + "_tableFix").css("height", HeadHeight); 55             var ColumnsWidth = 0; 56             var ColumnsNumber = 0; 57             $("#" + TableID + "_tableColumn tr:last td:lt(" + FixColumnNumber + ")").each(function () { 58                 ColumnsWidth += $(this).outerWidth(true); 59                 ColumnsNumber++; 60             }); 61             ColumnsWidth += 2; 62             if ($.browser.msie) { 63                 switch ($.browser.version) { 64                     case "7.0": 65                         if (ColumnsNumber >= 3) ColumnsWidth--; 66                         break; 67                     case "8.0": 68                         if (ColumnsNumber >= 2) ColumnsWidth--; 69                         break; 70                 } 71             } 72             $("#" + TableID + "_tableColumn").css("width", ColumnsWidth); 73             $("#" + TableID + "_tableFix").css("width", ColumnsWidth); 74             $("#" + TableID + "_tableData").scroll(function () { 75                 $("#" + TableID + "_tableHead").scrollLeft($("#" + TableID + "_tableData").scrollLeft()); 76                 $("#" + TableID + "_tableColumn").scrollTop($("#" + TableID + "_tableData").scrollTop()); 77             }); 78             $("#" + TableID + "_tableFix").css({ "overflow": "hidden", "position": "relative", "z-index": "50", "background-color": "Silver" }); 79             $("#" + TableID + "_tableHead").css({ "overflow": "hidden", "width": width - 17, "position": "relative", "z-index": "45", "background-color": "Silver" }); 80             $("#" + TableID + "_tableColumn").css({ "overflow": "hidden", "height": height - 17, "position": "relative", "z-index": "40", "background-color": "Silver" }); 81             $("#" + TableID + "_tableData").css({ "overflow": "scroll", "width": width, "height": height, "position": "relative", "z-index": "35" }); 82             if ($("#" + TableID + "_tableHead").width() > $("#" + TableID + "_tableFix table").width()) { 83                 $("#" + TableID + "_tableHead").css("width", $("#" + TableID + "_tableFix table").width()); 84                 $("#" + TableID + "_tableData").css("width", $("#" + TableID + "_tableFix table").width() + 17); 85             } 86             if ($("#" + TableID + "_tableColumn").height() > $("#" + TableID + "_tableColumn table").height()) { 87                 $("#" + TableID + "_tableColumn").css("height", $("#" + TableID + "_tableColumn table").height()); 88                 $("#" + TableID + "_tableData").css("height", $("#" + TableID + "_tableColumn table").height() + 17); 89             } 90             $("#" + TableID + "_tableFix").offset($("#" + TableID + "_tableLayout").offset()); 91             $("#" + TableID + "_tableHead").offset($("#" + TableID + "_tableLayout").offset()); 92             $("#" + TableID + "_tableColumn").offset($("#" + TableID + "_tableLayout").offset()); 93             $("#" + TableID + "_tableData").offset($("#" + TableID + "_tableLayout").offset()); 94         } 95 $(document).ready(function () { 96             FixTable("MyTable", 1, 600, 400); 97         }); 98     </script> 99 </head>100 <body>101     <table style="border-bottom-color: black; border-top-color: black; width: 1000px; color: #000000; border-right-color: black; font-size: medium; border-left-color: black"102            id="MyTable" border="1" cellspacing="0" cellpadding="0">103         <thead>104             <tr>105                 <th style="text-align: center; width: 80px" rowspan="3">姓名</th>106                 <th style="text-align: center; width: 80px" rowspan="3">班级</th>107                 <th style="text-align: center" colspan="10">成绩</th>108             </tr>109             <tr>110                 <th style="text-align: center" colspan="3">主科</th>111                 <th style="text-align: center" colspan="3">文科</th>112                 <th style="text-align: center" colspan="3">理科</th>113                 <th style="text-align: center; width: 80px" rowspan="2">总分</th>114             </tr>115             <tr>116                 <th style="text-align: center; width: 80px">语文</th>117                 <th style="text-align: center; width: 80px">数学</th>118                 <th style="text-align: center; width: 80px">英语</th>119                 <th style="text-align: center; width: 80px">政治</th>120                 <th style="text-align: center; width: 80px">历史</th>121                 <th style="text-align: center; width: 80px">地理</th>122                 <th style="text-align: center; width: 80px">物理</th>123                 <th style="text-align: center; width: 80px">化学</th>124                 <th style="text-align: center; width: 80px">生物</th>125             </tr>126             <!--127                  <tr>128                  <th style="width: 80px; text-align: center;" _mce_style="width: 80px; text-align: center;">129                                      姓名130                                  </th>131                                  <th style="width: 80px; text-align: center;" _mce_style="width: 80px; text-align: center;">132                                      班级133                                  </th>134                                  <th style="width: 80px; text-align: center;" _mce_style="width: 80px; text-align: center;">135                                      语文136                                  </th>137                                  <th style="width: 80px; text-align: center;" _mce_style="width: 80px; text-align: center;">138                                      数学139                                  </th>140                                  <th style="width: 80px; text-align: center;" _mce_style="width: 80px; text-align: center;">141                                      英语142                                  </th>143                                  <th style="width: 80px; text-align: center;" _mce_style="width: 80px; text-align: center;">144                                      政治145                                  </th>146                                  <th style="width: 80px; text-align: center;" _mce_style="width: 80px; text-align: center;">147                                      历史148                                  </th>149                                  <th style="width: 80px; text-align: center;" _mce_style="width: 80px; text-align: center;">150                                      地理151                                  </th>152                                  <th style="width: 80px; text-align: center;" _mce_style="width: 80px; text-align: center;">153                                      物理154                                  </th>155                                  <th style="width: 80px; text-align: center;" _mce_style="width: 80px; text-align: center;">156                                      化学157                                  </th>158                                  <th style="width: 80px; text-align: center;" _mce_style="width: 80px; text-align: center;">159                                      生物160                                  </th>161                                  <th style="width: 80px; text-align: center;" _mce_style="width: 80px; text-align: center;">162                                      总分163                                  </th>164 165                  </tr>166              -->167         </thead>168         <tbody>169             <!-- 数据行 -->170             <tr>171                 <td>学生32</td>172                 <td>班级1</td>173                 <td>29</td>174                 <td>25</td>175                 <td>146</td>176                 <td>28</td>177                 <td>79</td>178                 <td>73</td>179                 <td>47</td>180                 <td>8</td>181                 <td>91</td>182                 <td>526</td>183             </tr>184             <tr>185                 <td>学生32</td>186                 <td>班级1</td>187                 <td>29</td>188                 <td>25</td>189                 <td>146</td>190                 <td>28</td>191                 <td>79</td>192                 <td>73</td>193                 <td>47</td>194                 <td>8</td>195                 <td>91</td>196                 <td>526</td>197             </tr>198             <tr>199                 <td>学生32</td>200                 <td>班级1</td>201                 <td>29</td>202                 <td>25</td>203                 <td>146</td>204                 <td>28</td>205                 <td>79</td>206                 <td>73</td>207                 <td>47</td>208                 <td>8</td>209                 <td>91</td>210                 <td>526</td>211             </tr>212             <tr>213                 <td>学生32</td>214                 <td>班级1</td>215                 <td>29</td>216                 <td>25</td>217                 <td>146</td>218                 <td>28</td>219                 <td>79</td>220                 <td>73</td>221                 <td>47</td>222                 <td>8</td>223                 <td>91</td>224                 <td>526</td>225             </tr>226             <tr>227                 <td>学生32</td>228                 <td>班级1</td>229                 <td>29</td>230                 <td>25</td>231                 <td>146</td>232                 <td>28</td>233                 <td>79</td>234                 <td>73</td>235                 <td>47</td>236                 <td>8</td>237                 <td>91</td>238                 <td>526</td>239             </tr>240             <tr>241                 <td>学生32</td>242                 <td>班级1</td>243                 <td>29</td>244                 <td>25</td>245                 <td>146</td>246                 <td>28</td>247                 <td>79</td>248                 <td>73</td>249                 <td>47</td>250                 <td>8</td>251                 <td>91</td>252                 <td>526</td>253             </tr>254             <tr>255                 <td>学生32</td>256                 <td>班级1</td>257                 <td>29</td>258                 <td>25</td>259                 <td>146</td>260                 <td>28</td>261                 <td>79</td>262                 <td>73</td>263                 <td>47</td>264                 <td>8</td>265                 <td>91</td>266                 <td>526</td>267             </tr>268             <tr>269                 <td>学生32</td>270                 <td>班级1</td>271                 <td>29</td>272                 <td>25</td>273                 <td>146</td>274                 <td>28</td>275                 <td>79</td>276                 <td>73</td>277                 <td>47</td>278                 <td>8</td>279                 <td>91</td>280                 <td>526</td>281             </tr>282             <tr>283                 <td>学生32</td>284                 <td>班级1</td>285                 <td>29</td>286                 <td>25</td>287                 <td>146</td>288                 <td>28</td>289                 <td>79</td>290                 <td>73</td>291                 <td>47</td>292                 <td>8</td>293                 <td>91</td>294                 <td>526</td>295             </tr>296             <tr>297                 <td>学生32</td>298                 <td>班级1</td>299                 <td>29</td>300                 <td>25</td>301                 <td>146</td>302                 <td>28</td>303                 <td>79</td>304                 <td>73</td>305                 <td>47</td>306                 <td>8</td>307                 <td>91</td>308                 <td>526</td>309             </tr>310             <tr>311                 <td>学生32</td>312                 <td>班级1</td>313                 <td>29</td>314                 <td>25</td>315                 <td>146</td>316                 <td>28</td>317                 <td>79</td>318                 <td>73</td>319                 <td>47</td>320                 <td>8</td>321                 <td>91</td>322                 <td>526</td>323             </tr>324             <tr>325                 <td>学生32</td>326                 <td>班级1</td>327                 <td>29</td>328                 <td>25</td>329                 <td>146</td>330                 <td>28</td>331                 <td>79</td>332                 <td>73</td>333                 <td>47</td>334                 <td>8</td>335                 <td>91</td>336                 <td>526</td>337             </tr>338             <tr>339                 <td>学生32</td>340                 <td>班级1</td>341                 <td>29</td>342                 <td>25</td>343                 <td>146</td>344                 <td>28</td>345                 <td>79</td>346                 <td>73</td>347                 <td>47</td>348                 <td>8</td>349                 <td>91</td>350                 <td>526</td>351             </tr>352             <tr>353                 <td>学生32</td>354                 <td>班级1</td>355                 <td>29</td>356                 <td>25</td>357                 <td>146</td>358                 <td>28</td>359                 <td>79</td>360                 <td>73</td>361                 <td>47</td>362                 <td>8</td>363                 <td>91</td>364                 <td>526</td>365             </tr>366             <tr>367                 <td>学生32</td>368                 <td>班级1</td>369                 <td>29</td>370                 <td>25</td>371                 <td>146</td>372                 <td>28</td>373                 <td>79</td>374                 <td>73</td>375                 <td>47</td>376                 <td>8</td>377                 <td>91</td>378                 <td>526</td>379             </tr>380             <tr>381                 <td>学生32</td>382                 <td>班级1</td>383                 <td>29</td>384                 <td>25</td>385                 <td>146</td>386                 <td>28</td>387                 <td>79</td>388                 <td>73</td>389                 <td>47</td>390                 <td>8</td>391                 <td>91</td>392                 <td>526</td>393             </tr>394         </tbody>395     </table>396 </body>397 </html>
Nach dem Login kopieren

 

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage