JavaScript12——排他思想等案例

news/2024/7/19 13:26:02 标签: js

案例一:按钮的排他思想

<!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>
        //兼容的话可以用tagname,不兼容用selectall
        //1.获取所有按钮元素
        var btns = document.getElementsByTagName('button');
        for (var i = 0; i < btns.length; i++) {
            btns[i].onclick = function() {
                //(1)先把所有的按钮颜色去掉
                for (var j = 0; j < btns.length; j++) {
                    btns[j].style.backgroundColor = '';

                }
                //(2)再加自己的颜色
                this.style.backgroundColor = 'pink';
            }
        } //2.首先排除其他人,然后再设置自己的样式,这种排除其他人的思想称为排他思想
    </script>
</body>

</html>

效果如下:

案例二:换肤

<!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>
        * {
            margin: 0;
            padding: 0;
        }
        
        ul li {
            list-style: none;
        }
        
        body {
            background: url(images/1.jpg) no-repeat center top;
        }
        
        .baidu {
            overflow: hidden;
            margin: 100px auto;
            width: 410px;
            padding-top: 3px;
            background-color: blanchedalmond;
        }
        
        li {
            float: left;
            margin: 0 1px;
            cursor: pointer;
        }
        
        img {
            width: 100px;
        }
    </style>
</head>

<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>
</body>
<script>
    var imgs = document.querySelector('.baidu').querySelectorAll('img');
    var bodys = document.body; //body怎么获取的得知道
    for (var i = 0; i < imgs.length; i++) {
        imgs[i].onclick = function() {
            //this.src就是点击的图片的路径,给body就好了
            bodys.style.backgroundImage = 'url(' + this.src + ')';
        }
    }
</script>

</html>

效果如下:

案例三:表格隔行变色(添加或去掉class属性)

<!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>
        table {
            width: 800px;
            margin: 100px auto;
            text-align: center;
            border-collapse: collapse;
            font-size: 14px;
        }
        
        thead tr {
            height: 30px;
            background-color: skyblue;
        }
        
        tbody tr {
            height: 30px;
        }
        
        tbody td {
            border-bottom: 1px solid #d7d7d7;
            font-size: 12px;
            color: blue;
        }
        
        .bg {
            background-color: pink;
        }
    </style>
</head>

<body>
    <table>
        <thead>
            <tr>
                <th>代码</th>
                <th>名称</th>
                <th>最新公布净值</th>
                <th>累计净值</th>
                <th>前单位净值</th>
                <th>净值增长率</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>003526</td>
                <td>农银金穗3个月定期开放债券</td>
                <td>1.075</td>
                <td>1.079</td>
                <td>1.074</td>
                <td>+0.047%</td>
            </tr>
            <tr>
                <td>003526</td>
                <td>农银金穗3个月定期开放债券</td>
                <td>1.075</td>
                <td>1.079</td>
                <td>1.074</td>
                <td>+0.047%</td>
            </tr>
            <tr>
                <td>003526</td>
                <td>农银金穗3个月定期开放债券</td>
                <td>1.075</td>
                <td>1.079</td>
                <td>1.074</td>
                <td>+0.047%</td>
            </tr>
            <tr>
                <td>003526</td>
                <td>农银金穗3个月定期开放债券</td>
                <td>1.075</td>
                <td>1.079</td>
                <td>1.074</td>
                <td>+0.047%</td>
            </tr>
            <tr>
                <td>003526</td>
                <td>农银金穗3个月定期开放债券</td>
                <td>1.075</td>
                <td>1.079</td>
                <td>1.074</td>
                <td>+0.047%</td>
            </tr>
            <tr>
                <td>003526</td>
                <td>农银金穗3个月定期开放债券</td>
                <td>1.075</td>
                <td>1.079</td>
                <td>1.074</td>
                <td>+0.047%</td>
            </tr>
        </tbody>
    </table>
    <script>
        var trs = document.querySelector('tbody').querySelectorAll('tr');
        for (var i = 0; i < trs.length; i++) {
            trs[i].onmouseover = function() {
                this.className = 'bg';
            }
            trs[i].onmouseout = function() {
                this.className = '';
            }
        }
    </script>
</body>

</html>

效果如下:

案例四:全选、反选(重点案例,要考虑两种情况)

<!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>
        * {
            padding: 0;
            margin: 0;
        }
        
        .wrap {
            width: 300px;
            margin: 100px auto 0;
        }
        
        table {
            border-collapse: collapse;
            border-spacing: 0;
            border: 1px solid #c0c0c0;
            width: 300px;
        }
        
        th,
        td {
            border: 1px solid #d0d0d0;
            color: #404060;
            padding: 10px;
        }
        
        th {
            background-color: #09c;
            font: bold 16px "微软雅黑";
            color: #fff;
        }
        
        td {
            font: 14px "微软雅黑";
        }
        
        tbody tr {
            background-color: #f0f0f0;
        }
        
        tbody tr:hover {
            cursor: pointer;
            background-color: #fafafa;
        }
    </style>
</head>

<body>
    <div class="wrap">
        <table>
            <thead>
                <tr>
                    <th>
                        <input type="checkbox" id="j_cbAll" />
                    </th>
                    <th>商品</th>
                    <th>价钱</th>
                </tr>
            </thead>
            <tbody id="j_tb">
                <tr>
                    <td>
                        <input type="checkbox" />
                    </td>
                    <td>iPhone8</td>
                    <td>8000</td>
                </tr>
                <tr>
                    <td>
                        <input type="checkbox" />
                    </td>
                    <td>iPad Pro</td>
                    <td>5000</td>
                </tr>
                <tr>
                    <td>
                        <input type="checkbox" />
                    </td>
                    <td>iPad Air</td>
                    <td>2000</td>
                </tr>
                <tr>
                    <td>
                        <input type="checkbox" />
                    </td>
                    <td>Apple Watch</td>
                    <td>2000</td>
                </tr>

            </tbody>
        </table>
    </div>
    <script>
        var j_cbAll = document.querySelector('#j_cbAll');
        var j_tb = document.querySelector('#j_tb').querySelectorAll('input');
        j_cbAll.onclick = function() {
            //console.log(this.checked);
            for (let index = 0; index < j_tb.length; index++) {
                j_tb[index].checked = this.checked;

            }
        }
        for (let index = 0; index < j_tb.length; index++) {
            j_tb[index].onclick = function() {
                //每次点击都要循环检查是否全被选中
                var flag = true;
                for (var i = 0; i < j_tb.length; i++) {
                    if (!j_tb[i].checked) {
                        flag = false;
                        break;
                    }
                }
                j_cbAll.checked = flag;
            }

        }
    </script>
</body>

</html>

效果如下:

案例五:tab样式切换案例(用了两次排他思想,还自增了属性)

<!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>
        * {
            margin: 0;
            padding: 0;
        }
        
        li {
            list-style: none;
        }
        
        .tab {
            width: 650px;
            height: 100px auto;
        }
        
        .tab_list {
            height: 39px;
            border: 1px solid #ccc;
        }
        
        .tab_list li {
            float: left;
            height: 39px;
            line-height: 39px;
            padding: 0 20px;
            text-align: center;
            cursor: pointer;
        }
        
        .tab_list .current {
            background-color: brown;
            color: #ccc;
        }
        
        .item {
            display: none;
        }
    </style>
</head>

<body>
    <div class="tab">
        <div class="tab_list">
            <ul>
                <li class="current">商品介绍</li>
                <li>规格与包装</li>
                <li>售后保障</li>
                <li>商品评价(50000)</li>
                <li>手机社区</li>
            </ul>
        </div>
        <div class="tab_con">
            <div class="item" style="display: block;">
                商品介绍模块内容
            </div>
            <div class="item">
                规格与包装模块内容
            </div>
            <div class="item">
                售后保障模块内容
            </div>
            <div class="item">
                商品评价(50000)模块内容
            </div>
            <div class="item">
                手机社区模块内容
            </div>

        </div>
    </div>
    <script>
        //1.上面的模块选项卡,点击某一个,当前的是红色,其余不变 采用排他思想

        var tab_list = document.querySelector('.tab_list');
        var lis = tab_list.querySelectorAll('li');
        var items = document.querySelectorAll('.item');
        for (var i = 0; i < lis.length; i++) {
            //开始给5个小例设置索引号
            lis[i].setAttribute('index', i);
            lis[i].onclick = function() {
                for (var i = 0; i < lis.length; i++) {
                    lis[i].className = '';
                }
                this.className = 'current';
                //2.下面的显示内容模块 和上面一一对应的 
                var index = this.getAttribute('index');
                //干掉所有人 让其余的隐藏 排他思想
                for (var i = 0; i < lis.length; i++) {
                    items[i].style.display = 'none';
                }
                //留下我自己,让当前的item显示出来
                items[index].style.display = 'block';

            }
        }
    </script>
</body>

</html>

效果如下:


http://www.niftyadmin.cn/n/1497979.html

相关文章

js页面自适应屏幕大小_pixi.js 移动端H5坑点

需求说明&#xff1a;实现一个滚动长屏&#xff0c;在滚动过程中实现一些交互动画&#xff0c;最后生成一张海报。体验地址&#xff08;微信打开&#xff09;​wx3a662c40c51bf25b.mgeek.com.cn(微信打开)库&#xff1a;pixi_v4.5.5.min.js github中文基础教程地址, 官方文档地…

[BZOJ]1076 奖励关(SCOI2008)

终于又一次迎来了一道期望DP题&#xff0c;按照约定&#xff0c;小C把它贴了出来。 Description 你正在玩你最喜欢的电子游戏&#xff0c;并且刚刚进入一个奖励关。在这个奖励关里&#xff0c;系统将依次随机抛出k次宝物&#xff0c;每次你都可以选择吃或者不吃&#xff08;必须…

软考易错知识点——哈夫曼编码

最近总有人问我哈夫曼编码的问题&#xff0c;因此博主决定写一篇文章为大家捋一捋。 我们直接通过一个例子来了解一下哈夫曼编码&#xff0c;如下&#xff1a; 已知一个文件中各个字符及其对应的频率如下所示&#xff1a; 字符 a b c d e f 频率…

python视觉识别定位_机器视觉以及验证码识别

机器视觉从 Google 的无人驾驶汽车到可以识别假钞的自动售卖机&#xff0c;机器视觉一直都是一个应用广 泛且具有深远的影响和雄伟的愿景的领域。我们将重点介绍机器视觉的一个分支&#xff1a;文字识别&#xff0c;介绍如何用一些 Python库来识别和使用在线图片中的文字。我们…

axios之get/post请求实现导出Excel表格

目录 axios.get axios.post getToken() debounce 废话不多说 &#xff0c; 直接上代码 &#xff1a; axios.get // get 导出功能handleExport() {axios.get(/api/Export/userInfo?data${this.userId}&type${this.type}, {headers: {Authorization: getToken(),},resp…

最近小节——10月-11月初

十月最重要的两件事就是每周和老师开会&#xff0c;改方案然后再改&#xff0c;再写报告&#xff0c;这是其中一件事情&#xff0c;另一件事情准备软考 准备软考花了我比较长的时间&#xff0c;从看视频学习&#xff0c;到全书过一遍&#xff0c;考前一周全书过两遍加做题 总…

【BZOJ4715】囚人的旋律 DP

【BZOJ4715】囚人的旋律 Description 我们令a[i]表示看守的第i扇门对应囚犯的哪一扇门。令图G为有n个节点的图&#xff0c;编号为1&#xff5e;n。对于满足1≤i<j≤n的一对i和j&#xff0c;如果有a[i]>a[j]&#xff0c;那么在G中编号为i和j的节点之间连一条边。得到的图G…

tomcat升级_容器升级不着急,通用方案在这里

近期&#xff0c;公司部分老业务系统为了提升系统的性能及安全性&#xff0c;需要升级Tomcat到8.5.x版本。看似一个简单的版本升级&#xff0c;但却遇到了不少问题。在容器升级后&#xff0c;碰到了两个问题&#xff0c;现象及解决方案如下&#xff1a;问题一&#xff1a;容器迁…