• JS实现表格隔行变色


    用到的鼠标事件:(1)鼠标经过 onmouseover;(2)鼠标离开 onmouseout

    核心思路鼠标经过 tr 行的时候,当前行会改变背景颜色,鼠标离开的时候去掉背景颜色。

    注意:第一行(thead 里面的行)不需要变换颜色,改变的是 tbody 里面的行。

    1、获取元素,获取的是 tbody里面的行。

    2、循环注册绑定事件,将 tbody 里面全部的行都得到,然后全部都注册鼠标经过和离开事件。

    3、所有行绑定鼠标经过事件,鼠标经过当前元素(this)改变颜色;

    4、所有行绑定鼠标离开事件,鼠标离开当前元素(this)没有颜色;

    代码如下:

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>表格隔行变色</title>
     6   <style type="text/css">
     7       *{
     8           margin:0;padding: 0;
     9       }
    10       table{
    11           width:500px;
    12           position:relative;
    13           margin:100px auto;
    14           border-collapse:collapse;
    15           /*合并表格单一边框*/
    16           border:1px solid #d7d7d7;
    17       }
    18       thead tr{
    19           background-color:#ccc;
    20           height:30px;
    21       } 
    22       table tr{
    23           text-align: center;
    24           height:30px;
    25       }
    26       .bg{
    27           background: #eee;
    28       }                                                                           
    29 </style>
    30 </head>
    31 <body>
    32 <table  border=1>
    33     <thead>
    34         <tr>
    35             <td width="40">序号</td>
    36             <td width="100">前端单词</td>
    37             <td width="80">基本释义</td>
    38             <td width="50">长度</td>
    39             <td width="">补充</td>    
    40         </tr>
    41     </thead>
    42     <tbody>
    43         <tr>
    44                    <td>1</td>
    45                    <td>select</td>
    46                    <td>选择</td>
    47                    <td>6</td>
    48                    <td>-</td>
    49              </tr>
    50              <tr>
    51                    <td>2</td>
    52                    <td>target</td>
    53                    <td>目标</td>
    54                    <td>6</td>
    55                    <td>-</td>
    56              </tr>
    57              <tr>
    58                    <td>3</td>
    59                    <td>input </td>
    60                    <td>输出</td>
    61                    <td>5</td>
    62                    <td>-</td>
    63              </tr>
    64              <tr>
    65                    <td>4</td>
    66                    <td>button</td>
    67                    <td>按钮</td>
    68                    <td>8</td>
    69                    <td>-</td>
    70              </tr>
    71              <tr>
    72                    <td>5</td>
    73                    <td>checkbox</td>
    74                    <td>复选框</td>
    75                    <td>8</td>
    76                    <td>-</td>
    77              </tr>
    78     </tbody>
    79 </table>
    80 <script>
    81     //1、获取tbody里面的所有的行
    82     var trs = document.querySelector('tbody').querySelectorAll('tr');
    83     //2、利用循环注册事件
    84     for(var i = 0;i<trs.length;i++){
    85         var bgc = function(e){this.className = 'bg';}
    86         trs[i].addEventListener('mouseover',bgc)
    87         trs[i].onmouseout = function(){
    88             this.className = '';
    89         }
    90     }
    91 </script>
    92 </body>
    93 </html>

    显示效果:

    当鼠标滑过时:

     当鼠标离开时:

    当然这个效果使用 CSS的 :hover 可以非常简单的实现(tbody tr:hover{background: #eee;}),但是在这个例子中主要想体现的是使用JS事件和排他思想实现的效果。

     

  • 相关阅读:
    MFC发送自定义消息
    NDIS LWF:NdisFSendNetBufferLists蓝屏(DRIVER_IRQL_NOT_EQUAL_OR_LESS)
    CreatFile打开驱动失败
    反向代理和正向代理区别(转)
    MFC对文件文件夹转移、删除、重命名、复制【转】
    解决 OnDropFiles 可能无响应的问题【转】
    HTML5
    Spring常见面试题总结
    Mybatis常见面试题总结
    MyBatis
  • 原文地址:https://www.cnblogs.com/nyw1983/p/11925281.html
Copyright © 2020-2023  润新知