跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 请教个思路,最终效果上来讲,原生 JS 如何可以使整行表格 tr 内容被一个红框包起来?
未分類
12 1 月 2021

请教个思路,最终效果上来讲,原生 JS 如何可以使整行表格 tr 内容被一个红框包起来?

请教个思路,最终效果上来讲,原生 JS 如何可以使整行表格 tr 内容被一个红框包起来?

資深大佬 : qazwsxkevin 3

情况:
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";             }         }     } 

大佬有話說 (8)

  • 資深大佬 : versionlin

    用 css 不行么

  • 資深大佬 : VDimos

    做表格样式的都是大神,尤其对 tr thead tbody 做样式的。这些标签样式很多都不能用

  • 資深大佬 : walpurgis

    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 = ”
    })
    }

  • 資深大佬 : Mutoo

    CSS 的 :hover + outline 非常容易实现
    用 outline 有几个好处:
    1) 很少被使用,不会跟原有的 border 冲突
    2) 纯视觉效果,不改变布局

  • 資深大佬 : xuewuchen

    呃。。我是新手不太明白啊,你下载一个 Jquery 到本地用不久可以了吗?

  • 資深大佬 : renmu123

    @xuewuchen 华生你发现盲点了

  • 資深大佬 : devwolf

    除了#说的 outline,我也经常用 box-shadow,总之是 border 样式的替代方案。
    大 div 套小 div 漏一个框也是一种替代,不过看描述里“格子自带了颜色有具体代表不同的信息”,好像不能用大盒套小盒。

    不知道能不能用反色(就是白字彩底),当然我有看到描述 4 提到的“红色框”需求,只是我这边做表格效果时也常用反色,提议一下

  • 主 資深大佬 : qazwsxkevin

    没有来得及及时回复大家,说声谢谢了,最后我是这样完成的,应该是用了 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 = “”;
    }
    }
    }
    “`

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具