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

 更新时间:2016年12月30日 08:53:34   作者:trace332  
这篇文章主要介绍了JS实现的样式切换功能tableCSS,结合实例形式分析了js页面元素遍历与样式动态操作相关技巧,需要的朋友可以参考下

本文实例分析了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程序设计有所帮助。

相关文章

  • js 关于=+与+=日期函数使用说明(赋值运算符)

    js 关于=+与+=日期函数使用说明(赋值运算符)

    js 关于=+与+=日期函数使用说明(赋值运算符),可以看下,就是一些运算符的使用,看哪个更适合你。
    2011-11-11
  • JS+CSS实现仿新浪微博搜索框的方法

    JS+CSS实现仿新浪微博搜索框的方法

    这篇文章主要介绍了JS+CSS实现仿新浪微博搜索框的方法,实例分析了javascript针对搜索框样式的控制技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-02-02
  • 一篇文章弄懂js中的typeof用法

    一篇文章弄懂js中的typeof用法

    这篇文章主要给大家介绍了关于js中typeof用法的相关资料,typeof运算符把类型信息当作字符串返回,包括有大家常有变量类型,本文通过示例代码介绍的非常详细,需要的朋友可以参考下
    2021-11-11
  • css transform 3D幻灯片特效实现步骤解读

    css transform 3D幻灯片特效实现步骤解读

    3D幻灯片特效想必大家以不在陌生至于表现形式一般都是拘泥于传统接下来为大家介绍下使用css3 transform配合js以及html实现3D幻灯片特效
    2013-03-03
  • Javascript 浅拷贝、深拷贝的实现代码

    Javascript 浅拷贝、深拷贝的实现代码

    Javascript中的对像赋值与Java中是一样的,都为引用传递.就是说,在把一个对像赋值给一个变量时,那么这个变量所指向的仍就是原来对像的地址.那怎么来做呢 答案是克隆.
    2008-12-12
  • 纯js代码实现简单计算器

    纯js代码实现简单计算器

    这篇文章主要介绍了纯js代码实现简单计算器,功能超简单,实现加减乘除简单运算,感兴趣的小伙伴们可以参考一下
    2015-12-12
  • 深入浅出聊一聊js中的'this'关键字

    深入浅出聊一聊js中的'this'关键字

    js中的this关键字平时在开发中使用时倒是也能正常应用,但是对其使用和判断并不能信手拈来,所以下面这篇文章主要给大家介绍了关于js中this关键字的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-07-07
  • 仿服务器端脚本方式的JS模板实现方法

    仿服务器端脚本方式的JS模板实现方法

    仿服务器端脚本方式的JS模板实现方法...
    2007-04-04
  • Bootstrap3 图片(响应式图片&图片形状)

    Bootstrap3 图片(响应式图片&图片形状)

    这篇文章主要介绍了 Bootstrap3 图片 响应式图片和图片形状的相关资料,需非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-01-01
  • JavaScript使用canvas绘制坐标和线

    JavaScript使用canvas绘制坐标和线

    这篇文章主要为大家详细介绍了JavaScript使用canvas绘制坐标和线,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-04-04

最新评论