jQuery表格隔行變色效果詳解
多行多列的資料,行與行之間的分辨可能會有些吃力,比如行數眾多的表格。
隔行變色和滑鼠懸浮在某一行能夠實現行的背景變色,這在一定程度上能夠提高辨識度。
下面就通過一段程式碼例項介紹一下如何實現此效果。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"/> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> table{ background-color:#c0de98; text-align:center; } .table-tr-title { height:26px; font-size:12px; text-align:center; } .table-tr-content { height:18px; background:#FFFFFF; text-align:center; font-size:12px; } .normalEvenTD { background:#DFD8D8; } .normalOddTD { background:#FFFFFF; } .hoverTD { background-color:#eafcd5; height:18px; text-align:center; font-size:12px; } .trSelected { background-color:#51b2f6; height:18px; text-align:center; font-size:12px; } </style> <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script> <script type="text/javascript"> $(document).ready(function(){ var dtSelector=".list"; var tbList=$(dtSelector); tbList.each(function(){ var self=this; $("tr:even:not(:first)",$(self)).addClass("normalEvenTD"); $("tr:odd",$(self)).addClass("normalOddTD"); $("tr:not(:first)",$(self)).hover( function(){ $(this).addClass('hoverTD'); $(this).removeClass('table-td-content'); }, function(){ $(this).removeClass('hoverTD'); $(this).addClass('table-td-content'); } ); $("tr",$(self)).click(function(){ var trThis=this; $(self).find(".trSelected").removeClass('trSelected'); if($(trThis).get(0)==$("tr:first", $(self)).get(0)){ return; } $(trThis).addClass('trSelected'); }); }); }); </script> </head> <body> <table width="99%" class="list" cellpadding="0" cellspacing="1"> <tr class="table-tr-title"> <td width="5%">標題</td> <td width="5%">標題</td> <td width="5%">標題</td> <td width="5%">標題</td> </tr> <tr class="table-tr-content"> <td width="5%">螞蟻部落</td> <td width="5%">螞蟻部落</td> <td width="5%">螞蟻部落</td> <td width="5%">螞蟻部落</td> </tr> <tr class="table-tr-content"> <td width="5%">螞蟻部落</td> <td width="5%">螞蟻部落</td> <td width="5%">螞蟻部落</td> <td width="5%">螞蟻部落</td> </tr> <tr class="table-tr-content"> <td width="5%">螞蟻部落</td> <td width="5%">螞蟻部落</td> <td width="5%">螞蟻部落</td> <td width="5%">螞蟻部落</td> </tr> <tr class="table-tr-content"> <td width="5%">螞蟻部落</td> <td width="5%">螞蟻部落</td> <td width="5%">螞蟻部落</td> <td width="5%">螞蟻部落</td> </tr> <tr class="table-tr-content"> <td width="5%">螞蟻部落</td> <td width="5%">螞蟻部落</td> <td width="5%">螞蟻部落</td> <td width="5%">螞蟻部落</td> </tr> <tr class="table-tr-content"> <td width="5%">螞蟻部落</td> <td width="5%">螞蟻部落</td> <td width="5%">螞蟻部落</td> <td width="5%">螞蟻部落</td> </tr> <tr class="table-tr-content"> <td width="5%">螞蟻部落</td> <td width="5%">螞蟻部落</td> <td width="5%">螞蟻部落</td> <td width="5%">螞蟻部落</td> </tr> <tr class="table-tr-content"> <td width="5%">螞蟻部落</td> <td width="5%">螞蟻部落</td> <td width="5%">螞蟻部落</td> <td width="5%">螞蟻部落</td> </tr> <tr class="table-tr-content"> <td width="5%">螞蟻部落</td> <td width="5%">螞蟻部落</td> <td width="5%">螞蟻部落</td> <td width="5%">螞蟻部落</td> </tr> <tr class="table-tr-content"> <td width="5%">螞蟻部落</td> <td width="5%">螞蟻部落</td> <td width="5%">螞蟻部落</td> <td width="5%">螞蟻部落</td> </tr> <tr class="table-tr-content"> <td width="5%">螞蟻部落</td> <td width="5%">螞蟻部落</td> <td width="5%">螞蟻部落</td> <td width="5%">螞蟻部落</td> </tr> <tr class="table-tr-content"> <td width="5%">螞蟻部落</td> <td width="5%">螞蟻部落</td> <td width="5%">螞蟻部落</td> <td width="5%">螞蟻部落</td> </tr> </table> </body> </html>
表格相鄰行之間有不同的背景顏色,並且當滑鼠在表格行上懸浮時,能改變背景顏色。
一.實現原理:
原理比較簡單,為表格的奇偶行新增不同的樣式類,以達到隔行變色的效果,同時為表格行註冊hover事件處理函式,規定滑鼠移到或者離開表格行時新增新增和刪除樣式類,以達到背景變色效果。最後為表格行註冊click事件處理函式,當點選行的時候,能夠實現改變行的背景色效果。
二.程式碼註釋:
(1).$(document).ready(function(){}),當文件結構完全載入完畢再去執行函式中的程式碼。
(2).var dtSelector=".list",宣告一個變數,並將一個字串賦值給變數用以用作選擇器。
(3). var tbList=$(dtSelector),獲取物件。
(4).tbList.each(function(){}),將匹配元素作為函式的執行上下文,這裡就是表格物件。
(5).var self=this,this引用賦值給變數self,this是指向表格物件的,這裡是個DOM物件。
(6).$("tr:even:not(:first)",$(self)).addClass("normalEvenTD"),為偶數行新增一個樣式類,也就是設定偶數行的背景顏色,not(:first)可以去除匹配的第一個元素,也就是作為標題的第一行不包括在內。$(self)用來限定上下文範圍,也就是匹配指定指定表格內的tr行。
(7).$("tr:not(:first)",$(self)).hover(),為tr行註冊hover事件處理函式。
(8).function(){$(this).addClass('hoverTD');},為當前行新增一個樣式類。
(9).function(){$(this).removeClass('hoverTD');} ,移除樣式類。
(10).$("tr",$(self)).click(function(){}),為行註冊click事件處理函式,當點選行的時候可以設定行的背景顏色。
(11).var trThis=this,this指向當前匹配tr的引用,將此引用賦值給變數。
(12).$(self).find(".trSelected").removeClass('trSelected'),刪除之前點選行新增的樣式類,否則會產生多行都會被設定背景色的現象。
(13).if($(trThis).get(0)==$("tr:first", $(self)).get(0)),如果點選的是第一行也就是標題行,則跳出函式。
(14).$(trThis).addClass('trSelected'),為行新增樣式類。
三.相關閱讀:
(1).:even選擇器可以參閱jQuery :even一章節。
(2).:not選擇器可以參閱jQuery :not一章節。
(3).:first選擇器可以參閱jQuery :first一章節。
(4).addClass()函式可以參閱jQuery addClass()一章節。
(5).: odd選擇器可以參閱jQuery :odd一章節。
(6).hover事件可以參閱jQuery hover事件一章節。
(7).click事件可以參閱jQuery click事件一章節。
(8).find函式可以參閱jQuery find()一章節。
(9).removeClass()函式可以參閱jQuery removeClass()一章節。
相關文章
- CSS表格隔行變色詳解CSS
- JavaScript 表格隔行變色效果JavaScript
- jQuery外掛--表格隔行變色jQuery
- CSS 表格隔行變色CSS
- 頁面表格怎麼實現隔行異色、隔行變色
- jQuery table表格隔行換色程式碼例項jQuery
- Excel表格如何隔行填充顏色?Excel表格底色隔行填充方法教程Excel
- jQuery彈幕效果詳解jQuery
- jQuery 放大鏡效果詳解jQuery
- CSS 隔行變色程式碼例項CSS
- 填報表實現隔行異色的效果
- 前端--實現隔行變色的兩種方式前端
- jQuery表單驗證效果詳解jQuery
- jQuery滑鼠懸浮翻牌效果詳解jQuery
- jQuery滑鼠懸浮聚焦效果詳解jQuery
- jQuery實進度條效果詳解jQuery
- jQuery星級評分效果詳解jQuery
- jQuery 倒數計時效果詳解jQuery
- jQuery 圖片垂直切換效果詳解jQuery
- jQuery滑鼠滑過表格標題切換表格內容詳解jQuery
- JQuery datatables 給表格新增載入中效果jQuery
- 如何使用jQuery建立彩色條紋表格效果?jQuery
- jQuery根據表格欄位升序和降序詳解jQuery
- 純css之隔行換色CSS
- 使用WPS PPT設定隔行變色的具體操作方法
- JavaScript文字迴圈變色效果JavaScript
- jQuery實現的表格展開伸縮效果例項jQuery
- 點選連結背景變色效果
- JavaScript 點選表格行實現背景變色JavaScript
- CSS滑鼠懸浮行背景變色效果CSS
- PbootCMS奇偶數判斷(隔行變色)各種條件判斷和標籤boot
- JavaScript表格排序詳解JavaScript排序
- excel重複項篩選標色 excel表格重複項變色Excel
- table細線表格詳解
- jQuery 效果方法jQuery
- YUV顏色詳解
- CSS3文字顏色漸變效果CSSS3
- jQuery 的語法詳解jQuery