首页 > 编程 > JavaScript > 正文

JS实现的样式切换功能tableCSS实例

2019-11-19 18:11:45
字体:
来源:转载
供稿:网友

本文实例分析了JS实现的样式切换功能tableCSS。分享给大家供大家参考,具体如下:

把前阵子写的JQ插件函数(alterBgColor )改写成不基于JQ的代码,还添加了一个click样式效果

代码风格还是按照JQ插件风格来写,使用了闭包来循环设置TR元素的样式

function TableCss(options){  //如果没参数,就退出  if(arguments.length < 1 || !document.getElementById(options.tableName) ) { return ;}  //参数及默认参数  var options = {    tableName : options.tableName,    evenClass : options.evenClass || "tr_even",    oddClass : options.oddClass || "tr_odd",    clickClass : options.clickClass || "tr_click",    hoverClass: options.hoverClass || "tr_hover"    }  //根据ID找到表格元素  var tableName = document.getElementById(options.tableName);  var tr = tableName.getElementsByTagName("tr");  //对TR元素循环设置  for(var i=0, len=tr.length; i<len; i++){    //用了闭包    (function(k){      //设置奇偶行样式      tr[k].className = (k%2==0)? options.oddClass : options.evenClass;      //点击样式      tr[k].onclick = function(){        if (tr[k].className == options.clickClass){          tr[k].className = (k%2==0)? options.oddClass : options.evenClass;        }        else {          tr[k].className = options.clickClass;        }      }      //鼠标HOVER样式,如果已经是点击样式,则不变化      tr[k].onmouseover = function(){        if(tr[k].className == options.clickClass ){ return false;}        else { tr[k].className = options.hoverClass;}      }      tr[k].onmouseout = function(){        if(tr[k].className == options.clickClass){ return false;}        else {         tr[k].className = (k%2==0)? options.oddClass : options.evenClass;        }      }     })(i)  }}//调用TableCss({tableName:"tb1"});

效果很简单,代码也很简单.

只是这句tr[k].className = (k%2==0)? options.oddClass : options.evenClass;写了三遍,本来是写在一个function里的,但不知道在闭包里那么写会不会影响性能(任务管理器里也没看到有CPU使用率暴涨的情况),最后还是决定这么写,呵呵.

测试代码:

<style><!--#tb1,#tb1 td{ border:1px solid #000;border-collapse:collapse}.tr_even { background:#CCC;}.tr_odd { background:#9FF;}.tr_hover { background:#FF6;}.tr_click { background:#00F;}--></style><table id="tb1" cellpadding="1" cellspacing="1">  <tr>    <td>123</td>    <td>456</td>    <td>123</td>    <td>456</td>    <td>123</td>    <td>456</td>  </tr>  <tr>    <td>123</td>    <td>456</td>    <td>123</td>    <td>456</td>    <td>123</td>    <td>456</td>  </tr>  <tr>    <td>123</td>    <td>456</td>    <td>123</td>    <td>456</td>    <td>123</td>    <td>456</td>  </tr>  <tr>    <td>123</td>    <td>456</td>    <td>123</td>    <td>456</td>    <td>123</td>    <td>456</td>  </tr></table>

更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript切换特效与技巧总结》、《JavaScript遍历算法与技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript动画特效与技巧汇总》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》及《JavaScript数学运算用法总结

希望本文所述对大家JavaScript程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表