JS表格隔行变色效果的实现方法及注意事项是什么
Admin 2022-11-15 群英技术资讯 272 次浏览
用到的鼠标事件:(1)鼠标经过 onmouseover;(2)鼠标离开 onmouseout
核心思路:鼠标经过 tr 行的时候,当前行会改变背景颜色,鼠标离开的时候去掉背景颜色。
注意:第一行(thead 里面的行)不需要变换颜色,改变的是 tbody 里面的行。
1、获取元素,获取的是 tbody里面的行。
2、循环注册绑定事件,将 tbody 里面全部的行都得到,然后全部都注册鼠标经过和离开事件。
3、所有行绑定鼠标经过事件,鼠标经过当前元素(this)改变颜色;
4、所有行绑定鼠标离开事件,鼠标离开当前元素(this)没有颜色;
代码如下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>表格隔行变色</title> <style type="text/css"> *{ margin:0;padding: 0; } table{ width:500px; position:relative; margin:100px auto; border-collapse:collapse; /*合并表格单一边框*/ border:1px solid #d7d7d7; } thead tr{ background-color:#ccc; height:30px; } table tr{ text-align: center; height:30px; } .bg{ background: #eee; } </style> </head> <body> <table border=1> <thead> <tr> <td width="40">序号</td> <td width="100">前端单词</td> <td width="80">基本释义</td> <td width="50">长度</td> <td width="">补充</td> </tr> </thead> <tbody> <tr> <td>1</td> <td>select</td> <td>选择</td> <td>6</td> <td>-</td> </tr> <tr> <td>2</td> <td>target</td> <td>目标</td> <td>6</td> <td>-</td> </tr> <tr> <td>3</td> <td>input </td> <td>输出</td> <td>5</td> <td>-</td> </tr> <tr> <td>4</td> <td>button</td> <td>按钮</td> <td>8</td> <td>-</td> </tr> <tr> <td>5</td> <td>checkbox</td> <td>复选框</td> <td>8</td> <td>-</td> </tr> </tbody> </table> <script> //1、获取tbody里面的所有的行 var trs = document.querySelector('tbody').querySelectorAll('tr'); //2、利用循环注册事件 for(var i = 0;i<trs.length;i++){ var bgc = function(e){this.className = 'bg';} trs[i].addEventListener('mouseover',bgc) trs[i].onmouseout = function(){ this.className = ''; } } </script> </body> </html>
显示效果:
当鼠标滑过时:
当鼠标离开时:
当然这个效果使用 CSS的 :hover 可以非常简单的实现(tbody tr:hover{background: #eee;}),但是在这个例子中主要想体现的是使用JS事件和排他思想实现的效果。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
vue3 沙箱主要分两种,浏览器编译版本,浏览器版本是使用with语法加上proxy代理拦截;本地预编译版本,通过在模版预编译阶段转换阶段,使用转换插件transformExpression将非白名单标识符挂在在组件代理对象下
循环是迭代机制的基础,可以指定迭代的次数和每次迭代要执行的动作。迭代是在有序集合上进行的,有序可以理解为集合中的所有项目按确定的顺序被遍历。
事实上,前端很少涉及对二进制数据的处理,但即便如此,我们偶尔总能在角落里看见它们的身影。 今天我们就来聊一聊前端的二进制家族:Blob、ArrayBuffer和Buffer
这篇文章主要介绍了原生js拖拽功能制作滑动条实例教程,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
这篇文章主要介绍vue实现单文件组件的内容,对大家学习或者复习vue单文件组件的知识有一定的帮助,感兴趣的朋友可以参考下,希望大家阅读完这篇文章能有所收获,接下来小编带着大家一起了解看看。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008