写这个小栗子主要是因为在JS复习过程中,发现了一个事件对象的用法,即事件对象的target,在对多个对象进行相同的事件触发时可以用到。
该例子是一个4*4的表格,鼠标点击到哪部分就可以随机生成1个颜色填充小格子。
截图如下:

代码如下:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JS Test</title>
    <style>
        td {
            width: 150px;
            height: 100px;
            font-size: 0.8rem;
            font-family: 'consoloas';
            color: white;
            text-align: center;
        }
        
        table {
            border-collapse: collapse;
            margin: 0 auto;
            box-shadow: rgb(168, 168, 168) 0 0 1rem;
        }
        
        table caption {
            font-size: 1.2rem;
            font-family: 'Segoe UI', '宋体';
            line-height: 5rem;
        }
    </style>
</head>

<body>
    <table>
        <caption>4 x 4 调色板</caption>
        <tr>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
        </tr>
    </table>
</body>
<script>
    function random(number) {
        return Math.floor(Math.random() * number + 1);
    }

    function bgChange(e) {
        const rndCol = 'rgb(' + random(255) + ',' + random(255) + ',' + random(255) + ')';
        e.target.style.backgroundColor = rndCol;
        e.target.textContent = rndCol;
    }

    var btns = document.querySelectorAll('td');
    for (let i = 0; i < btns.length; i++) {
        btns[i].onclick = bgChange;
    }
</script>

</html>

random函数用来生成随机数,bgChange用来修改事件目标的css样式。

 posted on 2021-03-11 15:42  _STITCH  阅读(135)  评论(0编辑  收藏  举报