JavaScript基础应用-鼠标悬浮/离开表格格式变化


效果演示

对于网页中的一个表格,我们希望实现以下效果:(鼠标悬浮时该单元格所在行的背景颜色变为黄色,字体颜色变为红色,鼠标离开时,恢复原来的颜色)

这里就要使用到JavaScript的函数


代码实现

HTML代码



    
        sample
    
    

    


    
名称 单价 数量 小计 操作
苹果 5 20 100
菠萝 3 20 100
香蕉 25 20 200
总计 181

css代码


    
        
            CSS-javascriptt
        
        
        
        
    
    
    

CSS初识

段落1

段落2

段落3

JavaScript代码


    
        
            CSS-javascriptt
        
        
        
        
    
    
    

CSS初识

段落1

段落2

段落3

文件目录结构


HTML代码中不要出现JS代码,因此需要改写以上代码

改写后的代码如下:

改写后HTML代码



    
        sample
    
    

    


    
名称 单价 数量 小计 操作
苹果 5 20 100
菠萝 3 20 100
香蕉 25 20 200
总计 181

改写后JS代码

//当前窗口
window.onload=function (){
    //当页面加载完成,绑定各种事件
        //获取对ID标签属性为指定值的第一个对象的引用
    var fruitTb1 = document.getElementById(`tb1_fruit`);
        //获取来自于table对象的tr对象的集合
    var rows = fruitTb1.rows;



    for (var i = 0; i < rows.length; i++) {
        var tr = rows[i];
        //1.绑定鼠标悬浮设置背景颜色事件,离开后背景颜色恢复的事件
        tr.onmouseover = showBGColor;
        tr.onmouseout = clearBGColor;
        //2.获取tr这一行的所有单元格
        var cells = tr.cells;
        var priceID = cells[i];
        //3.绑定鼠标悬浮在单价单元格变手势的事件
        priceID.onmouseover = showHand;
    }

}

function showHand() {
    if(event && event.srcElement && event.srcElement.tagName === "TD"){
        var td = event.srcElement;
        td.style.cursor = "hand";
    }
}

//当鼠标悬浮时显示背景颜色
function showBGColor() {
    //event:表示当前发生的事件;
    //srcElement:事件源
    //alert(event.srcElement);
    //alert(event.srcElement.tagName);
    if(event && event.srcElement && event.srcElement.tagName === "TD"){
        var td = event.srcElement;
        var tr = td.parentElement;
        tr.style.backgroundColor = "yellow"
        //获取tr中的所有单元格
        var tds = tr.cells;
        for (var i = 0; i < tds.length; i++) {
            tds[i].style.color="red"
        }
    }
}

function clearBGColor() {
    if(event && event.srcElement && event.srcElement.tagName === "TD"){
        var td = event.srcElement;
        var tr = td.parentElement;
        tr.style.backgroundColor = "transparent";
        var tds = tr.cells;
        for(var i = 0;i < tds.length;i++){
            tds[i].style.color = "darkgray";
        }
    }
}

搜索

复制