欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

// 當(dāng)文件加載時(shí),執(zhí)行代碼。
window.onload = function() {
 // 獲取<ul id="list" />對(duì)象
 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; 
 }
}

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

2015114150851266.png (760×261)

不過(guò),這種方法存在一些問(wèn)題:

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

將其代碼進(jìn)行改進(jìn)并移入到一個(gè)單獨(dú)的函數(shù)中去:

/**
 * 此方法用于列表的隔行變色效果,可以靈活得為指定ID的列表指定隔行的顏色。
 *
 * @param id 列表的id
 * @param item 要變色的行的標(biāo)簽
 * @param odd 奇數(shù)行的樣式類名,如果不指定,則默認(rèn)為odd
 * @param even 偶數(shù)行的樣式類名,如果不指定,則默認(rèn)為even
 * @param start 開(kāi)始變色的行的索引,如果不指定,則默認(rèn)為0
 * @param end 結(jié)束變色的行的索引,如果不指定,則默認(rèn)為列表長(zhǎng)度
 */
function rowRender(id, item, odd, even, start, end) {
 // 獲取列表容器
 var list = document.getElementById(id);
 // 獲取列表
 var items = list.getElementsByTagName(item);
 
 // 修正初始位置,如果不是一個(gè)數(shù)字或者越界,則從0開(kāi)始
 if (isNaN(start) || (start < 0 || start >= items.length)) {
  start = 0;
 }
 
 // 修正結(jié)束位置,如果不是一個(gè)數(shù)字或者越界,則為列表末尾
 if (isNaN(end) || (end < start || end >= items.length)) {
  end = items.length;
 }
 
 // 如果沒(méi)有指定odd,則默認(rèn)為'odd'
 odd = odd || 'odd';
 // 如果沒(méi)有指定even, 則默認(rèn)為'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標(biāo)簽,使用默認(rèn)的樣式和起始位置
 rowRender('list1', 'li');

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

 // 渲梁table1下所有的tr標(biāo)簽,使用指定的odd和even,使用默認(rèn)的起始位置
 rowRender('table1', 'tr', 'tr-odd', 'tr-even');
 // 渲梁table2下所有的tr標(biāo)簽,使用指定的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)文章

  • 在js文件中寫el表達(dá)式取不到值的原因及解決方法

    在js文件中寫el表達(dá)式取不到值的原因及解決方法

    在js文件中寫el表達(dá)式取不到值,百度一下,將經(jīng)驗(yàn)總結(jié)如下,有類似情況的朋友可以參考下
    2013-12-12
  • 原生JS實(shí)現(xiàn)特效留言框

    原生JS實(shí)現(xiàn)特效留言框

    這篇文章主要為大家詳細(xì)介紹了原生JS實(shí)現(xiàn)特效留言框,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • 詳解Webpack多環(huán)境代碼打包的方法

    詳解Webpack多環(huán)境代碼打包的方法

    這篇文章主要介紹了詳解Webpack多環(huán)境代碼打包的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-08-08
  • JS判斷不同分辨率調(diào)用不同的CSS樣式文件實(shí)現(xiàn)思路及測(cè)試代碼

    JS判斷不同分辨率調(diào)用不同的CSS樣式文件實(shí)現(xiàn)思路及測(cè)試代碼

    最近看一個(gè)網(wǎng)站,發(fā)現(xiàn)顯示器不同的分辨率,樣式文件調(diào)用的也不一樣,于是很好奇研究并寫了一個(gè),經(jīng)測(cè)試感覺(jué)還不錯(cuò),感興趣的你可以來(lái)看看哦
    2013-01-01
  • BootStrap智能表單實(shí)戰(zhàn)系列(七)驗(yàn)證的支持

    BootStrap智能表單實(shí)戰(zhàn)系列(七)驗(yàn)證的支持

    這篇文章主要介紹了BootStrap智能表單實(shí)戰(zhàn)系列(七)驗(yàn)證的支持 ,凡是涉及到用戶編輯信息然后保存的頁(yè)面,都涉及到一個(gè)數(shù)據(jù)是否符合要求的檢查,需要客服端和服務(wù)器端的校驗(yàn)的問(wèn)題,本文介紹非常詳細(xì),具有參考價(jià)值,需要的朋友可以參考下
    2016-06-06
  • csdn 論壇技術(shù)區(qū)平均給分功能

    csdn 論壇技術(shù)區(qū)平均給分功能

    看論壇里技術(shù)區(qū)沒(méi)有平均給分的功能,感覺(jué)散分很不方便,就寫了一個(gè):IE8,FF3.5下測(cè)試ok
    2009-11-11
  • JavaScript實(shí)現(xiàn)省市聯(lián)動(dòng)過(guò)程中bug的解決方法

    JavaScript實(shí)現(xiàn)省市聯(lián)動(dòng)過(guò)程中bug的解決方法

    這篇文章主要為大家詳細(xì)介紹了解決JavaScript實(shí)現(xiàn)省市聯(lián)動(dòng)過(guò)程中的bug,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • 10 種最常見(jiàn)的 Javascript 錯(cuò)誤(頻率最高)

    10 種最常見(jiàn)的 Javascript 錯(cuò)誤(頻率最高)

    本文是小編給大家收藏的JavaScript 中頻度最高的 10 種錯(cuò)誤,我們會(huì)告訴你什么原因?qū)е铝诉@些錯(cuò)誤,以及如何防止這些錯(cuò)誤發(fā)生。需要的朋友參考下
    2018-02-02
  • JS PromiseLike的判定與使用詳解

    JS PromiseLike的判定與使用詳解

    本文主要介紹了JS PromiseLike的判定與使用詳解, 文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-11-11
  • Promise掃盲貼

    Promise掃盲貼

    這篇文章主要介紹了Promise掃盲貼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06

最新評(píng)論