day04--js的综合案例

news2024/9/21 16:43:25

1.1 商品全选

需求:商品全选

1. 全选 :点击全选按钮,所有复选框都被选中

2. 全不选 :点击全不选按钮,所有复选框都被取消选中

3. 反选 : 点击反选按钮,所有复选框状态取反

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>商品全选</title>
</head>
<body>
    <button id="btn1">1. 全选</button>
    <button id="btn2">2. 全不选</button>
    <button id="btn3">3. 反选</button>
    <br />
    <input type="checkbox">电脑
    <input type="checkbox">手机
    <input type="checkbox">汽车
    <input type="checkbox">别墅
    <input type="checkbox" checked>笔记本
​
​
    <!--
        商品全选
            1. 全选 点击全选按钮,所有复选框都被选中
            2. 全不选 点击全不选按钮,所有复选框都被取消选中
            3. 反选 点击反选按钮,所有复选框状态取反
    -->
</body>
<script>
    // 1. 全选 点击全选按钮,所有复选框都被选中
    document.getElementById("btn1").onclick = function(){
        //获取到所有的复选框, 然后添加一个属性checked=true
       let inputs = document.getElementsByTagName("input")
       for(let item of inputs){
        item.checked = true
       } 
    }
    //2. 全不选 点击全不选按钮,所有复选框都被取消选中
    document.getElementById("btn2").onclick = function(){
        //获取到所有的复选框, 然后添加一个属性checked=false
       let inputs = document.getElementsByTagName("input")
       for(let item of inputs){
        item.checked = false
       } 
    }
    //3. 反选 点击反选按钮,所有复选框状态取反
    document.getElementById("btn3").onclick = function(){
        //获取到所有的复选框, 然后修改属性checked取反
       let inputs = document.getElementsByTagName("input")
       for(let item of inputs){
         /*
            if(item.checked){
                item.checked = false
            }else{
             item.checked = true
            } 
         */
           item.checked = !item.checked
       }
    }
</script>
</html>

效果图:

1.2 隔行变色

需求:隔行变色

1. 表格奇偶行颜色不同(表头不参与)

2. 鼠标移入颜色高亮

<!DOCTYPE html>
<html lang="en">
​
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>隔行变色</title>
​
</head>
​
<body>
    <table id="tab1" border="1" width="800" align="center">
        <tr>
            <th>分类ID</th>
            <th>分类名称</th>
            <th>分类描述</th>
            <th>操作</th>
        </tr>
        <tr>
            <td>1</td>
            <td>手机数码</td>
            <td>手机数码类商品</td>
            <td><a href="">修改</a>|<a href="">删除</a></td>
        </tr>
        <tr>
            <td>2</td>
            <td>电脑办公</td>
            <td>电脑办公类商品</td>
            <td><a href="">修改</a>|<a href="">删除</a></td>
        </tr>
        <tr>
            <td>3</td>
            <td>鞋靴箱包</td>
            <td>鞋靴箱包类商品</td>
            <td><a href="">修改</a>|<a href="">删除</a></td>
        </tr>
        <tr>
            <td>4</td>
            <td>家居饰品</td>
            <td>家居饰品类商品</td>
            <td><a href="">修改</a>|<a href="">删除</a></td>
        </tr>
        <tr>
            <td>5</td>
            <td>牛奶制品</td>
            <td>牛奶制品类商品</td>
            <td><a href="">修改</a>|<a href="">删除</a></td>
        </tr>
        <tr>
            <td>6</td>
            <td>大豆制品</td>
            <td>大豆制品类商品</td>
            <td><a href="">修改</a>|<a href="">删除</a></td>
        </tr>
        <tr>
            <td>7</td>
            <td>海参制品</td>
            <td>海参制品类商品</td>
            <td><a href="">修改</a>|<a href="">删除</a></td>
        </tr>
        <tr>
            <td>8</td>
            <td>羊绒制品</td>
            <td>羊绒制品类商品</td>
            <td><a href="">修改</a>|<a href="">删除</a></td>
        </tr>
        <tr>
            <td>9</td>
            <td>海洋产品</td>
            <td>海洋产品类商品</td>
            <td><a href="">修改</a>|<a href="">删除</a></td>
        </tr>
        <tr>
            <td>10</td>
            <td>奢侈用品</td>
            <td>奢侈用品类商品</td>
            <td><a href="">修改</a>|<a href="">删除</a></td>
        </tr>
        <tr>
            <td>11</td>
            <td>家居饰品</td>
            <td>家居饰品类商品</td>
            <td><a href="">修改</a>|<a href="">删除</a></td>
        </tr>
    </table>
    
</body>
<script>
    // 1. 表格奇偶行颜色不同(表头不参与)
    //获取所有的tr(行标签)
    let trArr = document.getElementsByTagName("tr")
    //循环所有的tr,排除第一行
    for (let i = 1; i < trArr.length; i++) {
        if (i % 2 == 0) {
            trArr[i].style.backgroundColor = "pink";
        } else {
            trArr[i].style.backgroundColor = "orange";
        }
​
        //2. 鼠标移入颜色变亮
        //记录原始背景色
        let oldColor
        //给每一行添加一个鼠标移入 移除事件
        trArr[i].onmouseover = function () {
            oldColor = this.style.backgroundColor
            this.style.backgroundColor = "blue"
        }
        //鼠标移出颜色恢复
        trArr[i].onmouseout = function () {
            this.style.backgroundColor = oldColor
        }
    }
</script>
</html>

效果图:

1.3 省市级联

需求:省市级联

1. 页面加载完成后自动装载省数据

2. 当选中省时,装载该省的市数据

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>省市级联</title>
</head>
<body>
    <select id="provinceId" style="width:150px">
        <option value="">----请-选-择-省----</option>
        <option value="0">北京</option>
        <option value="1">河北</option>
        <option value="2">辽宁</option>
        <option value="3">天津</option>
    </select>
    <select id="cityId" style="width:150px">
        <option value="">----请-选-择-市----</option>
        <option value="0">顺义区</option>
        <option value="1">昌平区</option>
        <option value="2">朝阳区</option>
    </select>
    
    <script type="text/javascript">
        // 准备数据
        var data = new Array();
        data[0] = ['顺义区', '昌平区', '朝阳区'];
        data[1] = ["保定", "石家庄", "廊坊"];
        data[2] = ["沈阳", "铁岭", "抚顺"];
        data[3] = ["滨海新区", "宝坻区", "南开区"];
​
        let provinceSelect = document.getElementById("provinceId");//获取省下拉列表
        let citySelect = document.getElementById("cityId");//获取市下拉列表
       
        //1.给select绑定一个onchange事件,当选项发生变化时,执行方法
        provinceSelect.onchange = function(){
            //2.修改citySelect中所有的option选项
            //2.1根据所选的省份的value,获取此省份下的所有地级市或地区
            let citys = data[this.value]
            //循环所有地级市或地区,拼接option
            let ops = "<option>----请-选-择-市----</option>"
            for(let i=0;i<citys.length;i++){
                ops += "<option>"+citys[i]+"</option>"
            }
            //2.3将所有option替换到cityId的select下
            citySelect.innerHTML = ops
        }
    </script>
​
</body>
</html>

效果图:

1.4 年会抽奖

需求: 页面刷新,随机抽取一二三等奖,要求获奖人不能重复

<!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>年会抽奖</title>
  <style>
    .wrapper {
      width: 840px;
      height: 420px;
      background: url(../images/bg01.jpg) no-repeat center / cover;
      padding: 100px 250px;
      box-sizing: border-box;
    }
​
    .wrapper span {
      color: #b10e0d;
    }
  </style>
</head>
​
<body>
  <div class="wrapper">
    <h1>年会抽奖</h1>
    <h2>一等奖:<span id="one">待开奖</span></h2>
    <h3>二等奖:<span id="two">待开奖</span></h3>
    <h4>三等奖:<span id="three">待开奖</span></h4>
  </div>
  <script>
    // 需求: 页面刷新,随机抽取一二三等奖,要求获奖人不能重复
    const arr = ['波本', '琴酒', '基尔', '伏特加', '白兰地', '爱尔兰']
    
    /* 
    方法1:
    
    //从arr中随机获取一个
    let num1 = Math.floor(Math.random()*arr.length);
    let name = arr[num1];
    //将内容填写到span中
    document.getElementById("one").innerHTML=name
    //从数组中删除
    arr.splice(num1,1)
    //2.生成二等奖
    //从arr中随机获取一个
    let num2 = Math.floor(Math.random()*arr.length);
    name = arr[num2];
    //将内容填写到span中
    document.getElementById("two").innerHTML=name
    //从数组中删除
    arr.splice(num2,1)
    //3.生成三等奖
    //从arr中随机获取一个
    let num3 = Math.floor(Math.random()*arr.length);
    name = arr[num3];
    //将内容填写到span中
    document.getElementById("three").innerHTML=name
    //从数组中删除
    arr.splice(num3,1) 
    */
    
   //方法2:简便方法
    //生成一等奖
    huoj("one")
    //生成一等奖
    huoj("two")
    //生成一等奖
    huoj("three")
   function huoj(id){
     //从arr中随机获取一个
    let num = Math.floor(Math.random()*arr.length);
    let name = arr[num];
    //将内容填写到span中
    document.getElementById(id).innerHTML=name
    //从数组中删除
    arr.splice(num,1) 
   }
  </script>
</body>
​
</html>

1.5 轮播图

需求:轮播图: 一共5张图片,实现每过2秒中切换一张图片的效果。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>轮播图</title>
    <style>
        div {
            text-align: center;
        }
    </style>
</head>
​
<body>
    <div>
        <img id="myImg" src="../images/L1.jpg" width="500px">
    </div>
    <script>
        //定义一个索引,默认为1
        let i=1
        let si = setInterval(function(){
            if(i>5){
                i = 1;//图片复位
            }
            //更换照片路径
            document.getElementById("myImg").src="../images/L"+i+".jpg";
            //图片变更
            i++;
        },2000)
    </script>
</body>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2048808.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

智慧校园云平台电子班牌系统源码,智慧教育一体化云解决方案

智慧校园云平台电子班牌系统&#xff0c;利用先进的云计算技术&#xff0c;将教育信息化资源和教学管理系统进行有效整合&#xff0c;实现生态基础数据共享、应用生态统一管理&#xff0c;为智慧教育建设的统一性&#xff0c;稳定性&#xff0c;可扩展性&#xff0c;互通性提供…

利用PDAL库实现Las文件向PLY文件的转换

1、官网的下载链接 PDAL&#xff08;Point Data Abstraction Library&#xff09;是一个开源的C库&#xff0c;专门用于处理三维点云数据。它提供了数据读取、转换、过滤、统计分析等多种功能&#xff0c;支持多种数据格式&#xff0c;如LAS、LiDAR、ASCII等。在IT行业中&…

Java常用集合(List、Map)类型相关问题整理

一、背景 针对Java基础集合的部分&#xff0c;对一些常见的问题进行整理&#xff0c;方便后续能够随时复习 二、问题与回答 &#xff08;1&#xff09;Java集合类ArrayList初始化时数组的默认长度是多少&#xff1f; 答&#xff1a;在new ArrayList() 这段代码执行完后&a…

类Unix环境在Windows上的演进史

自从以Unix为基础的操作系统被发明以来&#xff0c;尝试在Windows环境中模仿Unix操作的工具就一直存在。这种需求源于许多原因&#xff0c;包括Unix对脚本和命令行工具的强大支持&#xff0c;以及Unix和Linux系统在科学、工程和其他技术领域的广泛使用。下面就让我们一起探讨下…

input[type=checkbox]勾选框自定义样式

效果图&#xff1a; <template> <input class"rule-checkbox" type"checkbox" checked v-model"isChecked" /> </template><script setup lang"ts"> import { ref } from vue; const isChecked ref(); </…

应急响应-DDOS-技术指南

初步预判 通常&#xff0c;可从以下几方面判断服务器/主机是否遭受DDoS攻击查看防火墙、流量监控设备、网络设备等是否出现安全告警或大量异常数据包。如图所示&#xff0c;通过流量对比&#xff0c;发现在异常时间段存在大量UDP数据包&#xff0c;并且与业务无关。 通过安全设…

猫毛还是满天飞?宠物空气净化器是个好帮手

家里养了几只可爱的小猫咪&#xff0c;每天都想它们贴贴&#xff0c;有时候看到它们这么可爱的待在家里&#xff0c;都不想出门上班了。每天睁眼是它们&#xff0c;闭眼前也是它们&#xff0c;只要我待在家里&#xff0c;它们就和我一起挪动&#xff0c;好像身边多了几只可爱的…

qt-12工具盒(ToolBox)

工具盒--ToolBox drawer.hdrawer.cppmain.cpp运行图 drawer.h #ifndef DRAWER_H #define DRAWER_H #include <QWidget> #include <QToolBox> #include <QToolButton> #include <QGroupBox> #include <QVBoxLayout>class Drawer : public QToolB…

机械学习—零基础学习日志(如何理解线性代数5)

零基础为了学人工智能&#xff0c;正在快乐学习&#xff0c;每天都长脑子 特征向量和特征值 我们知道&#xff0c;线性映射&#xff0c;也就是矩阵&#xff0c;其实就是平面的一种变换。 但是在矩阵变换过程中&#xff0c;我们会发现有一个方向上&#xff0c;变化方向会与x的…

Python 函数式编程 内置高阶函数及周边【进阶篇 3】推荐

前面我们已经总结并实践了用python获取到了数据。也介绍了python中http网络请求的几种方式&#xff0c;正在学习python开发语言或者对python3知识点生疏需要回顾的请点这里 &#xff0c;本章主要总结了函数式编程及特点 和 python中内置的高阶函数及周边知识&#xff0c;方便自…

Scout Suite:开源云安全审计工具

Scout Suite 是一个开源、多云安全审计工具&#xff0c;旨在评估云环境的安全态势。 Scout Suite 利用云供应商提供的 API 来收集和整理配置数据&#xff0c;从而更轻松地识别潜在风险。 Scout Suite 无需手动筛选云 Web 控制台上的大量页面&#xff0c;而是会自动生成全面清…

ObjectUtils.nullSafeEquals你真的用对了吗?

目录 引言排查思考 引言 在写代码时&#xff0c;我们通常喜欢使用org.springframework.util.ObjectUtils#nullSafeEquals来比较两个对象是否相等&#xff0c;从而避免使用equals方法在对象为空时导致空指针异常。 最近在写代码时&#xff0c;我试图使用stream流的filter&#…

1.Linux_常识

UNIX、Linux、GNU 1、UNIX UNIX是一个分时操作系统&#xff0c;特点是多用户、多任务 实时操作系统&#xff1a;来了请求就去解决请求 分时操作系统&#xff1a;来了请求先存着&#xff0c;通过调度轮到执行时执行 2、Linux Linux是一个操作系统内核 发行版本&#xff1…

Linux - 常用基础指令和命令

文章目录 1、ifconfig指令2、ssh指令3、ls指令4、pwd命令5、cd 指令6、stat命令7、 touch指令8、mkdir指令9、rmdir指令10、rm指令11、man指令12、cp指令13、mv指令14、cat指令15、more指令16、less指令17、head指令18、tail指令19、时间相关的指令20、cal指令21、find指令22、…

指向派生类的基类指针、强转为 void* 再转为基类指针、此时调用虚函数会发生什么?

指向派生类的基类指针、强转为 void* 再转为基类指针、此时调用虚函数会发生什么&#xff1f; 1、无论指针类型怎么转&#xff0c;类对象内存没有发生任何变化&#xff0c;还是vfptr指向虚函数表&#xff0c;下面是成员变量&#xff0c;这在编译阶段就已经确定好了&#xff1b…

校园失物招领系统pf

TOC springboot337校园失物招领系统pf 绪论 1.1研究背景与意义 信息化管理模式是将行业中的工作流程由人工服务&#xff0c;逐渐转换为使用计算机技术的信息化管理服务。这种管理模式发展迅速&#xff0c;使用起来非常简单容易&#xff0c;用户甚至不用掌握相关的专业知识&…

自动驾驶-机器人-slam-定位面经和面试知识系列09之C++STL面试题(04)

这个博客系列会分为C STL-面经、常考公式推导和SLAM面经面试题等三个系列进行更新&#xff0c;基本涵盖了自己秋招历程被问过的面试内容&#xff08;除了实习和学校项目相关的具体细节&#xff09;。在知乎和牛客&#xff08;某些文章上会附上内推码&#xff09;也会同步更新&a…

鸿蒙(API 12 Beta3版)【HDR Vivid视频录制】 音视频编码

开发者可以调用本模块的Native API接口&#xff0c;实现在视频录制中支持HDR Vivid标准。 视频录制的主要流程是“相机采集 > 编码 > 封装成mp4文件”。 HDR Vivid视频编码 应用创建H265编码器&#xff0c;配置profile(main 10)相机底层包含HDR Vivid的surfacebuffer内…

Airtest 的使用

Airtest 介绍 Airtest Project 是网易游戏推出的一款自动化测试框架&#xff0c;其项目由以下几个部分构成 Airtest : 一个跨平台的&#xff0c;基于图像识别的 UI 自动化测试框架&#xff0c;适用于游戏和 App &#xff0c; 支持 Windows, Android 和 iOS 平台&#xff0c…

蛋白质基础

氨基酸:必需氨基酸 条件必需氨基酸和非必需氨基酸 必需氨基酸:机体需要但自身不能合成&#xff0c;必须从食物中获取的氨基酸。共有八种&#xff0c;对婴儿&#xff0c;组氨酸也是必需氨基酸。 条件必需氨基酸:半胱氨酸和酪氨酸在体内分别由蛋氨酸和苯丙氨酸转变而来。若膳食中…