学习笔记,仅供参考,有错必究



Web API

排他操作

排他思想

如果有同一组元素,我们想要某一个元素实现某种样式, 需要用到循环的排他思想算法:

  1. 所有元素全部清除样式(干掉其他人)
  2. 给当前元素设置样式 (留下我自己)

注意:顺序不能颠倒,首先干掉其他人,再设置自己


  • 举个例子

代码:

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

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <button>1</button>
    <button>2</button>
    <button>3</button>
    <button>4</button>
    <button>5</button>

    <script>
        var btns = document.getElementsByTagName("button")

        for (var i = 0; i < btns.length; i++) {
            btns[i].onclick = function() {
                for (var i = 0; i < btns.length; i++) {
                    btns[i].style.backgroundColor = '';
                }

                this.style.backgroundColor = 'pink';
            }
        }
    </script>

</body>

</html>

现在,我们点击4按钮:

再点击3按钮:

OK!


百度换肤案例
  • 实现效果

实现点击小图片,换背景图片的效果。

  • 代码
<body>
    <ul class="baidu">
        <li><img src="images/1.jpg"></li>
        <li><img src="images/2.jpg"></li>
        <li><img src="images/3.jpg"></li>
        <li><img src="images/4.jpg"></li>
    </ul>
    <script>
        // 1. 获取元素 
        var imgs = document.querySelector('.baidu').querySelectorAll('img');
        // 2. 循环注册事件 
        for (var i = 0; i < imgs.length; i++) {
            imgs[i].onclick = function() {
                // this.src 就是我们点击图片的路径
                document.body.style.backgroundImage = 'url(' + this.src + ')';
            }
        }
    </script>
</body>
表格隔行变色
  • 实现效果

原始表格:

将光标移动到月饼那一行:

  • 代码
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>

    <style>
        .bg {
            background-color: pink;
        }
    </style>

</head>

<body>
    <table border="1">
        <thead>
            <tr>
                <th>preduct</th>
                <th>money</th>
                <th>number</th>
            </tr>
        </thead>

        <tbody>
            <tr>
                <td>排骨</td>
                <td>¥100</td>
                <td>4</td>
            </tr>
            <tr>
                <td>月饼</td>
                <td>¥80</td>
                <td>8</td>
            </tr>
            <tr>
                <td>桂鱼</td>
                <td>¥200</td>
                <td>2</td>
            </tr>
        </tbody>
    </table>

    <script>
        // 1.获取元素 获取的是 tbody 里面所有的行
        var trs = document.querySelector('tbody').querySelectorAll('tr');
        // 2. 利用循环绑定注册事件
        for (var i = 0; i < trs.length; i++) {
            // 3. 鼠标经过事件 onmouseover
            trs[i].onmouseover = function() {
                    // console.log(11);
                    this.className = 'bg';
                }
                // 4. 鼠标离开事件 onmouseout
            trs[i].onmouseout = function() {
                this.className = '';
            }
        }
    </script>

</body>

</html>
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐