
情况:
1 、是在“增强”别人用数组绘制的动态表格,想在上面略加效果,
2 、情况不允许用 Jquery,主要原因是公司去公网的防火墙没有对 Jquery 的 CDN 地址放白名单。
3 、因为表格里面本身有些 td 格子自带了颜色(颜色有具体代表不同的信息),如果 onmouseover,onmouseout 去改颜色变高亮,反而影响了使用。。。
4 、所以就想到了弄个红色的框来表现鼠标落在了这行内容上。。。
5 、试着写了一下,对 tr 各种.style 参数调了一下,好像没那么简单?。。。
6 、脸厚问,可有现成的参考一下?
//高亮 TR,目前只做了字体自动加粗,效果还不足够 var tab = document.getElementById('dataShow'); var trs = tab.getElementsByTagName('tr');//获取所有的 tr 标签 for (var i = 0; i < trs.length; i++) { trs[i].Onmouseover= function () { //鼠标移动上事件 if (this.style.fontWeight != "bolder") { this.style.fOntWeight= "bolder"; } } trs[i].Onmouseout= function () { //鼠标移出事件 if (this.style.fOntWeight== "bolder") { this.style.fOntWeight= "normal"; } } } 1 versionlin 2021-01-13 00:49:59 +08:00 via Android 用 css 不行么 |
2 VDimos 2021-01-13 01:16:52 +08:00 via Android 做表格样式的都是大神,尤其对 tr thead tbody 做样式的。这些标签样式很多都不能用 |
3 walpurgis 2021-01-13 01:20:47 +08:00 var tab = document.getElementById('dataShow'); tab.style.borderCollapse = 'collapse'; // tr 设置 border 需要 table 为 collapse var trs = document.getElementsByTagName('tr'); for (let i = 0; i < trs.length; i++) { trs[i].addEventListener('mouseenter', () => { trs[i].style.border = '1px solid red' }) trs[i].addEventListener('mouseleave', () => { trs[i].style.border = '' }) } |
4 Mutoo 2021-01-13 07:25:34 +08:00 via iPhone CSS 的 :hover + outline 非常容易实现 用 outline 有几个好处: 1) 很少被使用,不会跟原有的 border 冲突 2) 纯视觉效果,改变布局 |
5 xuewuchen 2021-01-13 08:12:42 +08:00 呃。。我是新手不太明白啊,你下载一个 Jquery 到本地用不久可以了吗? |
7 devwolf 2021-01-13 09:22:21 +08:00 除了#说的 outline,我也经常用 box-shadow,总之是 border 样式的替代方案。 大 div 套小 div 漏一个框也是一种替代,不过看描述里“格子自带了颜色有具体代表不同的信息”,好像不能用大盒套小盒。 不知道能不能用反色(就是白字彩底),当然我有看到描述 4 提到的“红色框”需求,只是我这边做表格效果时也常用反色,提议一下 |
8 qazwsxkevin OP 没有来得及及时回复大家,说声谢谢了,最后我是这样完成的,应该是用了 CSS 吧。。。 ``` //高亮 TR var tab = document.getElementById('showTable'); var trs = tab.getElementsByTagName('tr');//获取所有的 tr 标签 for (var i = 0; i < trs.length; i++) { if (i == 0) { continue } trs[i].Onmouseover= function () { //鼠标移动上事件 if (this.style.fontWeight != "bolder") { this.style.fOntWeight= "bolder"; this.style.outline = "#ff0e05 inset thick"; } } trs[i].Onmouseout= function () { //鼠标移出事件 if (this.style.fOntWeight== "bolder") { this.style.fOntWeight= "normal"; this.style.outline = ""; } } } ``` |