最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用JavaScript和CSS實現(xiàn)文本隔行換色的方法

 更新時間:2015年11月04日 15:12:05   作者:Ask and Learn  
這篇文章主要介紹了使用JavaScript和CSS實現(xiàn)文本隔行換色的方法,當(dāng)然最普通的也可以單純用CSS實現(xiàn),需要的朋友可以參考下

先來看一個簡單的方法。
在 css 中定義兩種樣式 .odd{...} 和 .even{...} 分別用于奇數(shù)行和偶數(shù)行的不同背景顏色。在網(wǎng)頁加載后通過 javascript 獲取要變色的標簽列表,執(zhí)行如下代碼:

// 當(dāng)文件加載時,執(zhí)行代碼。
window.onload = function() {
 // 獲取<ul id="list" />對象
 var list = document.getElementById('list');
 // 獲取list下面的所有l(wèi)i
 var items = list.getElementsByTagName('li');
 // 遍歷items
 for (var i = 0; i < items.length; i++) {
  var className = (i % 2 == 0) ? ' odd' : ' even';
  items[i].className += className; 
 }
}

實現(xiàn)不同行的不同顏色,這樣變完全在前端處理,不會與后端的邏輯混淆,是一種比較好的解決方案。
那么這種代碼實現(xiàn)起來效果基本上是這樣的:

2015114150851266.png (760×261)

不過,這種方法存在一些問題:

  • 只能對指定的一個列表進行渲染,不能重用
  • 不能指定變色的起始位置,在處理表格的變色時,得專門寫處理
  • 代碼全在 onload 事件中,對頁面的依賴太高

將其代碼進行改進并移入到一個單獨的函數(shù)中去:

/**
 * 此方法用于列表的隔行變色效果,可以靈活得為指定ID的列表指定隔行的顏色。
 *
 * @param id 列表的id
 * @param item 要變色的行的標簽
 * @param odd 奇數(shù)行的樣式類名,如果不指定,則默認為odd
 * @param even 偶數(shù)行的樣式類名,如果不指定,則默認為even
 * @param start 開始變色的行的索引,如果不指定,則默認為0
 * @param end 結(jié)束變色的行的索引,如果不指定,則默認為列表長度
 */
function rowRender(id, item, odd, even, start, end) {
 // 獲取列表容器
 var list = document.getElementById(id);
 // 獲取列表
 var items = list.getElementsByTagName(item);
 
 // 修正初始位置,如果不是一個數(shù)字或者越界,則從0開始
 if (isNaN(start) || (start < 0 || start >= items.length)) {
  start = 0;
 }
 
 // 修正結(jié)束位置,如果不是一個數(shù)字或者越界,則為列表末尾
 if (isNaN(end) || (end < start || end >= items.length)) {
  end = items.length;
 }
 
 // 如果沒有指定odd,則默認為'odd'
 odd = odd || 'odd';
 // 如果沒有指定even, 則默認為'even'
 even = even || 'even'; 
 
 // 遍歷列表并渲染效果
 for (var i = start; i < end; i++) {
  var className = ' ' + ((i % 2 == 0) ? odd : even);
  items[i].className += className;
 }
}

用法:

window.onload = function() {
 // 渲梁list1下所有的li標簽,使用默認的樣式和起始位置
 rowRender('list1', 'li');

 // 渲梁list2下所有的li標簽,使用指定的odd和默認的even,使用指定的起始位置
 rowRender('list2', 'li', 'odd1', null, 2, 6);

 // 渲梁table1下所有的tr標簽,使用指定的odd和even,使用默認的起始位置
 rowRender('table1', 'tr', 'tr-odd', 'tr-even');
 // 渲梁table2下所有的tr標簽,使用指定的odd和even,使用指定的起始位置
 rowRender('table2', 'tr', 'tr-odd', 'tr-even', 1);
}

示例:
Table 1

rowRender('table1', 'tr', 'tr-odd', 'tr-even');

2015114151117861.png (182×292)

Table 2

rowRender('table1', 'tr', 'tr-odd', 'tr-even', 1);

2015114151136246.png (131×308)

相關(guān)文章

最新評論

景宁| 张家口市| 灵石县| 宜川县| 洪洞县| 英山县| 渝北区| 肇州县| 宁南县| 靖州| 手游| 崇礼县| 忻州市| 万荣县| 阿克陶县| 哈巴河县| 疏勒县| 海晏县| 务川| 右玉县| 普洱| 陕西省| 灵川县| 益阳市| 金华市| 涟水县| 兴海县| 桃源县| 芮城县| 五家渠市| 西畴县| 墨脱县| 桐乡市| 永宁县| 偃师市| 北京市| 万盛区| 望奎县| 双江| 鄄城县| 长丰县|