Web APIs——Dom获取属性操作

news2024/12/25 16:04:42

1.变量声明

1.1以后声明变量我们优先使用哪个?
·  const
· 有了变量先给const,如果发现它后面是要被修改的,再改为let
1.2 为什么const声明的对象可以修改里面的属性?
·  因为对象是引用类型,里面存储的是地址,只要地址不变,就不会报错
·  建议数组和对象使用 const 来声明
1.3 什么时候使用let声明变量?
·  如果基本数据类型的值或者引用类型的地址 发生变化 的时候,需要用 let
· 比如 一个变量进行加减运算,比如 for循环中的 i++

2.Web API 基本认知

2.1 Web API阶段我们学习那两部分?
·  DOM
·  BOM
2.2 DOM 是什么?有什么作用?
·  DOM 是文档对象模型
·  操作网页内容,可以开发网页内容特效和实现用户交互
2.3 DOM 树是什么?
·  将 HTML 文档以树状结构直观的表现出来,我们称之为文档树或 DOM树
·  作用: 文档树直观的体现了标签与标签之间的关系
2.4 DOM对象怎么创建的?
·  浏览器根据html标签生成的 JS对象(DOM对象)
·  所有的标签属性都可以在这个对象上面找到,修改这个对象的属性会自动映射到标签身上
·  DOM的核心就是把内容当 对象 来处理
2.5 document 是什么?
·  是 DOM 里提供的一个 对象
·所以它提供的属性和方法都是 用来访问和操作网页内容的 例:document.write()
·  网页所有内容都在document里面

3.获取DOM元素

3.1 根据CSS选择器来获取DOM元素 (重点)

1. 选择匹配的第一个元素

语法:
参数:
包含一个或多个有效的CSS选择器 字符串
返回值:
CSS选择器匹配的 第一个元素 ,一个 HTMLElement对象。
如果没有匹配到,则返回null。
多参看文档:https://developer.mozilla.org/zh-CN/docs/Web/API/Document/querySelector

2. 选择匹配的多个元素

语法:
参数:
包含一个或多个有效的CSS选择器 字符串
返回值:
CSS选择器匹配的 NodeList 对象集合
例如:
得到的是一个 伪数组
·有长度有索引号的数组
·但是没有 pop() push() 等数组方法
想要得到里面的每一个对象,则需要遍历(for)的方式获得。
注意 :哪怕只有一个元素,通过querySelectAll() 获取过来的也是一个 伪数组 ,里面只有一个元素而已

 1. 获取页面中的标签我们最终常用那两种方式?

·  querySelectorAll()
·  querySelector()
2. 他们两者的区别是什么?
·  querySelector() 只能选择一个元素, 可以直接操作
·  querySelectorAll() 可以选择多个元素,得到的是伪数组,需要遍历得
到每一个元素
3. 他们两者小括号里面的参数有神马注意事项?
·  里面写css选择器
·  必须是字符串,也就是必须加引号
练习 :

 

<!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>
    <ul class="nav">
      <li>我的首页</li>
      <li>产品介绍</li>
      <li>联系方式</li>
    </ul>
    <script>
      const li = document.querySelectorAll(".nav li");
      // console.log(li)
      for (let i = 0; i < li.length; i++) {
        console.log(li[i]);
      }
    </script>
  </body>
</html>

 3.2 其他获取DOM元素方法(了解)

 

4.操作元素内容 

4.1 设置/修改DOM元素内容有哪2种方式?

·  元素.innerText 属性

 · 元素.innerHTML 属性

4.2 两者的区别是什么?  

·  元素.innerText 属性 只识别文本,不能解析标签
·  元素.innerHTML 属性 能识别文本,能够解析标签
· 如果还在纠结到底用谁,你可以选择innerHTML

练习

<!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;
      }
    </style>
  </head>

  <body>
    <div class="wrapper">
      <strong>传智教育年会抽奖</strong>
      <h1>一等奖:<span id="one">???</span></h1>
      <h3>二等奖:<span id="two">???</span></h3>
      <h5>三等奖:<span id="three">???</span></h5>
    </div>
    <script>
      //声明数组
      const personArr = ["周杰伦", "刘德华", "周星驰", "Pink老师", "张学友"];
      //生成随机数
      const random1 = Math.floor(Math.random() * personArr.length);
      //一等奖
      const one = document.querySelector("#one");
      one.innerHTML = personArr[random1];
      personArr.splice(random1, 1);
      //二等奖
      const random2 = Math.floor(Math.random() * personArr.length);
      const two = document.querySelector("#two");
      two.innerHTML = personArr[random2];
      personArr.splice(random2, 1);
      //三等奖
      const random3 = Math.floor(Math.random() * personArr.length);
      const three = document.querySelector("#three");
      three.innerHTML = personArr[random3];
      personArr.splice(random3, 1);
    </script>
  </body>
</html>

5.操作元素属性

5.1 操作元素常用属性

还可以通过 JS 设置/修改标签元素属性,比如通过 src更换 图片
最常见的属性比如: href、title、src 等
语法:
举例说明:

练习:

页面刷新,图片随机更换
需求:当我们刷新页面,页面中的图片随机显示不同的图片
分析:
①:随机显示,则需要用到随机函数
②:更换图片需要用到图片的 src 属性,进行修改
③:核心思路:
1. 获取图片元素
2. 随机得到图片序号
3. 图片 .src = 图片随机路径
<!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>
    <img src="" alt="" />
    <script>
      // function getRandom(N, M) {
      //   return Math.floor(Math.random() * (M - N + 1) + N);
      // }
      //生成随机数
      const random = Math.floor(Math.random() * 6 + 1);
      const img = document.querySelector("img");
      img.src = `./images/${random}.webp`;
    </script>
  </body>
</html>

5.2 操作元素样式属性

1.通过 style 属性操作CSS

语法:
举例说明:
注意:
1. 修改样式通过 style 属性引出
2. 如果属性有- 连接符,需要转换为 小驼峰 命名法
3. 赋值的时候,需要的时候不要忘记加 css单位
练习

 页面刷新,页面随机更换背景图片

需求:当我们刷新页面,页面中的背景图片随机显示不同的图片
分析:
①: 随机函数
②: css页面背景图片 background-image
③: 标签选择body, 因为body是唯一的标签,可以直接写 document.body.style
<!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>
      body {
        background-image: url(./images/desktop_1.jpg);
      }
    </style>
  </head>
  <body>
    <script>
      //生成随机数
      function getRandom(N, M) {
        return Math.floor(Math.random() * (M - N + 1)) + N;
      }
      const random = getRandom(1, 10);
      const body = document.querySelector("body");
      // body.style.background = ` url(./images/desktop_${random}.jpg) no-repeat top center/cover`;
      body.style.backgroundImage = `url(./images/desktop_${random}.jpg)`;
    </script>
  </body>
</html>

2. 操作类名(className) 操作CSS

如果修改的样式比较多,直接通过style属性修改比较繁琐,我们可以通过借助于css类名的形式。
语法:
注意:
1. 由于class是关键字, 所以使用className去代替
2. className是使用新值 旧值, 如果需要添加一个类,需要保留之前的类名

3. 通过 classList 操作类控制CSS

为了解决className 容易覆盖以前的类名,我们可以通过classList方式追加和删除类名
语法:

//切换类toggle()有就删掉,没有就加上 

<!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>
      .box {
        width: 200px;
        height: 200px;
        color: black;
      }
      .active {
        color: red;
        background-color: pink;
      }
    </style>
  </head>
  <body>
    <div class="box">文字</div>
    <script>
      const div = document.querySelector("div");
      //className
      // div.className = "active";

      //classList
      //添加类名add()
      // div.classList.add("active");
      //删除类名remove()
      // div.classList.remove("box");
      //切换类toggle() 'active'有就删掉,没有就加上
      div.classList.toggle("active");
    </script>
  </body>
</html>

5.3 操作表单元素 属性

表单很多情况,也需要修改属性,比如点击眼睛,可以看到密码,本质是 把表单类型转换为文本
正常的有属性有取值的 跟其他的标签属性没有任何区别
·  获取: DOM对象.属性名
·  设置: DOM对象.属性名 = 新值

 

注意:修改表单内容用 表单.value=' ',不用表单.innerHTML=' '。(button除外)

表单属性中添加就有效果,移除就没有效果,一律使用布尔值表示
如果为true 代表添加了该属性 如果是false 代表移除了该属性(字符串类型除了空以外,都为true)
比如: disabled(是否禁用按钮)、checked(是否勾选)、selected
举例说

5.4 自定义属性

标准属性: 标签天生自带的属性 比如class id title等, 可以直接使用点语法操作比如: disabled、checked、 selected
自定义属性:
·  在html5中推出来了专门的data-自定义属性
·  在标签上一律以data-开头
·  在DOM对象上一律以dataset对象方式获取

6. 定时器-间歇函数

目标:能够使用定时器函数重复执行代码
定时器函数可以开启和关闭定时器

6.1 开启定时器

·  作用:每隔一段时间调用这个函数
·  间隔时间单位是毫秒
举例说明:
举例说明
注意:
1. 函数名字 不需要加括号 (加括号会立即执行)
2. 定时器返回的是一个id数字

6.2 关闭定时器

一般不会刚创建就停止,而是满足一定条件再停止

举例说明:

练习:

阅读注册协议
需求:按钮60秒之后才可以使用
分析:
①:开始先把按钮禁用( disabled 属性)
②:一定要获取元素
③:函数内处理逻辑
秒数开始减减
按钮里面的文字跟着一起变化
如果秒数等于0 停止定时器 里面文字变为 同意 最后 按钮可以点击

 

<!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>
    <textarea name="" id="" cols="30" rows="10">
        用户注册协议
        欢迎注册成为京东用户!在您注册过程中,您需要完成我们的注册流程并通过点击同意的形式在线签署以下协议,请您务必仔细阅读、充分理解协议中的条款内容后再点击同意(尤其是以粗体或下划线标识的条款,因为这些条款可能会明确您应履行的义务或对您的权利有所限制)。
        【请您注意】如果您不同意以下协议全部或任何条款约定,请您停止注册。您停止注册后将仅可以浏览我们的商品信息但无法享受我们的产品或服务。如您按照注册流程提示填写信息,阅读并点击同意上述协议且完成全部注册流程后,即表示您已充分阅读、理解并接受协议的全部内容,并表明您同意我们可以依据协议内容来处理您的个人信息,并同意我们将您的订单信息共享给为完成此订单所必须的第三方合作方(详情查看
    </textarea>
    <br />
    <button class="btn" disabled>我已经阅读用户协议(5)</button>
    <script>
      //1.获取元素
      const btn = document.querySelector(".btn");
      //2.倒计时
      let i = 5;
      //3.定时器
      function time() {
        i--;
        btn.innerHTML = `我已经阅读用户协议(${i})`;
        if (i === 0) {
          clearInterval(m);
          btn.innerHTML = "同意";
          btn.disabled = false;
        }
      }
      let m = setInterval(time, 1000);
    </script>
  </body>
</html>

综合案例:

轮播图定时器版
需求:每隔一秒钟切换一个图片
分析:
①:准备一个数组对象,里面包含详细信息(素材包含)
②:获取元素
③:设置定时器函数
设置一个变量++
找到变量对应的对象
更改图片、文字信息
激活小圆点:移除上一个高亮的类名,当前变量对应的小圆点添加类
④:处理图片自动复原从头播放(放到变量++后面,紧挨)
如果图片播放到最后一张, 就是大于等于数组的长度
则把变量重置为0

 

 

<!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>
      * {
        box-sizing: border-box;
      }

      .slider {
        width: 560px;
        height: 400px;
        overflow: hidden;
      }

      .slider-wrapper {
        width: 100%;
        height: 320px;
      }

      .slider-wrapper img {
        width: 100%;
        height: 100%;
        display: block;
      }

      .slider-footer {
        height: 80px;
        background-color: rgb(100, 67, 68);
        padding: 12px 12px 0 12px;
        position: relative;
      }

      .slider-footer .toggle {
        position: absolute;
        right: 0;
        top: 12px;
        display: flex;
      }

      .slider-footer .toggle button {
        margin-right: 12px;
        width: 28px;
        height: 28px;
        appearance: none;
        border: none;
        background: rgba(255, 255, 255, 0.1);
        color: #fff;
        border-radius: 4px;
        cursor: pointer;
      }

      .slider-footer .toggle button:hover {
        background: rgba(255, 255, 255, 0.2);
      }

      .slider-footer p {
        margin: 0;
        color: #fff;
        font-size: 18px;
        margin-bottom: 10px;
      }

      .slider-indicator {
        margin: 0;
        padding: 0;
        list-style: none;
        display: flex;
        align-items: center;
      }

      .slider-indicator li {
        width: 8px;
        height: 8px;
        margin: 4px;
        border-radius: 50%;
        background: #fff;
        opacity: 0.4;
        cursor: pointer;
      }

      .slider-indicator li.active {
        width: 12px;
        height: 12px;
        opacity: 1;
      }
    </style>
  </head>

  <body>
    <div class="slider">
      <div class="slider-wrapper">
        <img src="./images/slider01.jpg" alt="" />
      </div>
      <div class="slider-footer">
        <p>对人类来说会不会太超前了?</p>
        <ul class="slider-indicator">
          <li class="active"></li>
          <li></li>
          <li></li>
          <li></li>
          <li></li>
          <li></li>
          <li></li>
          <li></li>
        </ul>
        <div class="toggle">
          <button class="prev">&lt;</button>
          <button class="next">&gt;</button>
        </div>
      </div>
    </div>
    <script>
      // 1. 初始数据
      const sliderData = [
        {
          url: "./images/slider01.jpg",
          title: "对人类来说会不会太超前了?",
          color: "rgb(100, 67, 68)",
        },
        {
          url: "./images/slider02.jpg",
          title: "开启剑与雪的黑暗传说!",
          color: "rgb(43, 35, 26)",
        },
        {
          url: "./images/slider03.jpg",
          title: "真正的jo厨出现了!",
          color: "rgb(36, 31, 33)",
        },
        {
          url: "./images/slider04.jpg",
          title: "李玉刚:让世界通过B站看到东方大国文化",
          color: "rgb(139, 98, 66)",
        },
        {
          url: "./images/slider05.jpg",
          title: "快来分享你的寒假日常吧~",
          color: "rgb(67, 90, 92)",
        },
        {
          url: "./images/slider06.jpg",
          title: "哔哩哔哩小年YEAH",
          color: "rgb(166, 131, 143)",
        },
        {
          url: "./images/slider07.jpg",
          title: "一站式解决你的电脑配置问题!!!",
          color: "rgb(53, 29, 25)",
        },
        {
          url: "./images/slider08.jpg",
          title: "谁不想和小猫咪贴贴呢!",
          color: "rgb(99, 72, 114)",
        },
      ];

      //2.获取元素
      const img = document.querySelector(".slider-wrapper img");
      const p = document.querySelector(".slider-footer p");
      const footer = document.querySelector(".slider-footer");
      let i = 0;
      //3.定时器
      let n = setInterval(function () {
        i++;
        img.src = sliderData[i].url;
        p.innerHTML = sliderData[i].title;
        footer.style.backgroundColor = sliderData[i].color;
        //小圆点
        //先删除以前的.active
        let active = document.querySelector(".slider-indicator .active");
        active.classList.remove("active");
        //只给当前li添加类名
        let li = document.querySelector(
          `.slider-indicator li:nth-child(${i + 1})`
        );
        li.classList.add("active");
        if (i === 7) {
          i = -1;
        }
      }, 1000);
    </script>
  </body>
</html>

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

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

相关文章

从设计到做出一张光刻掩模版要多久?

知识星球里的学员问&#xff1a;光刻掩模版是如何做出来的&#xff0c;麻烦详细讲解下。 如上图&#xff0c;设计分为四步&#xff1a; 1. 讨论工艺步骤&#xff08;约1小时&#xff09;&#xff1a;工艺人员和设计人员会首先讨论掩膜板的设计要求&#xff0c;明确最终所需的图…

【含文档】基于Springboot+Vue的古风生活体验交流网站(含源码+数据库+lw)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 系统定…

红外画面空中目标检测系统源码分享

红外画面空中目标检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Comp…

麒麟操作系统部分目录介绍

图形系统目录 文字系统目录 &#xff08;1&#xff09;/bin&#xff1a;存放普通用户可以使用的命令文件。 &#xff08;2&#xff09;/boot&#xff1a;包含内核和其它系统程序启动时使用的文件。 &#xff08;3&#xff09;/dev&#xff1a;设备文件所在目录。在操作系统中…

【Linux】解锁磁盘文件奥秘,高效数据管理的实战技巧

磁盘文件 1. 引言2. 磁盘的机械构成3. 磁盘的物理存储3.1. CHS定位寻址法 4. 磁盘的逻辑存储4.1. LBA地址4.2. inode4.3. 分区、分组4.4. Boot Block4.5. 块组 — Block group4.5.1. inode Table4.5.2. Data Blocks4.5.3. inode Bitmap4.5.4. Block Bitmap4.5.5. GDT4.5.6. Sup…

c++primer第十三章 类继承

本章内容&#xff1a;单个类就可以提供用于管理对话框的全部资源。通常&#xff0c;类库是以源代码的方式提供的&#xff0c;这意味着可以对其进行修改&#xff0c;以满足需求。但是&#xff0c;C-提供了比修改代码更好的方法来扩展和修改类。这种方法叫作类继承(class inheria…

【Android 源码分析】Activity生命周期之onDestroy

忽然有一天&#xff0c;我想要做一件事&#xff1a;去代码中去验证那些曾经被“灌输”的理论。                                                                                  – 服装…

命令行操作的基本指令【Linux】学完使用操作命令行就像喝汤一样快

致谢:Linux常用命令大全(手册) – 真正好用的Linux命令在线查询网站 提供的命令查询 一、认识操作系统 1.1计算机层级结构 操作系统是一款进行软硬件资源管理的软件 计算机从最接近我们的开始是软件->操作系统->设备驱动->硬件,我们学习软件要学习他的使用方法,而…

【光伏混合储能】VSG并网运行,构网型变流器,虚拟同步机仿真

摘要 本文提出了一种基于光伏发电与混合储能系统结合的虚拟同步发电机&#xff08;VSG&#xff09;控制策略&#xff0c;该策略能够在并网运行时稳定电网电压和频率。通过仿真分析&#xff0c;验证了该策略在各种运行工况下的有效性&#xff0c;展示了其在电力系统中的广泛应用…

RDI ADCP命令与ASCII输出结构

RDI ADCP命令与ASCII输出结构 一、RDI垂直式ADCP:1.1固定命令&#xff1a;1.2 向导命令 二、RDI水平式ADCP三、ADCP 公共目录四、常用BBTalk命令五、ADCP的ASCII输出数据文件、流量与数据结构5.1 ASCII类输出&#xff1a;5.2 ASCII 输出数据文件头5.3 ASCII 输出数据集5.4 导航…

PMP--三模--解题--91-100

文章目录 10.沟通管理--沟通管理计划--沟通管理计划是项目管理计划的组成部分&#xff0c;描述将如何规划&#xff0c;结构化、执行与监督项目沟通&#xff0c;以提高沟通的有效性。该计划包括如下信息&#xff1a;干系人的沟通需求。--与干系人沟通的文件&#xff0c;要看沟通…

Prometheus监控MySQL主从数据库

案例分析Prometheus监控MySQL主从数据库 1. 规划节点 节点规划&#xff0c;见表1。 表1 节点规划 IP主机名节点192.168.100.3masterPrometheus Grafana192.168.100.3mastermysql/master mysqld_exporter node_exporter192.168.100.4nodemysql/master mysqld_exporter …

毕业设计选题:基于ssm+vue+uniapp的家庭记账本小程序

开发语言&#xff1a;Java框架&#xff1a;ssmuniappJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;M…

开放式耳机的优缺点?哪个品牌专业?好用的开放式蓝牙耳机分享

我相信很多想入手的开放式耳机的家人都想知道开放式耳机是什么&#xff0c;开放式耳机有什么优缺点&#xff0c;开放式耳机是不是智商税、值不值得购买以及如果要购买的话&#xff0c;有什么专业的开放式耳机品牌推荐。因为我毕竟是测评过三十多款开放式耳机的数码博主&#xf…

67.【C语言】枚举类型

1.定义 对于有限的情况,一一列举 如一周有7天,从周一到周日;光学三原色(Red Green Blue) 2.格式 enum 枚举类型名 {//枚举常量 }; 备注:enum为enumeration缩写 3.枚举成员变量的值 #include <stdio.h> enum color {Red,Green,Blue };int main() {printf("%d…

健康信息管理:SpringBoot的创新应用

第2章相关技术 2.1 B/S架构 B/S结构的特点也非常多&#xff0c;例如在很多浏览器中都可以做出信号请求。并且可以适当的减轻用户的工作量&#xff0c;通过对客户端安装或者是配置少量的运行软件就能够逐步减少用户的工作量&#xff0c;这些功能的操作主要是由服务器来进行控制的…

C++平台跳跃游戏

目录 开头程序Game.cpp源文件Player.h头文件Player.cpp源文件 程序的流程图程序游玩的效果下一篇博客要说的东西 开头 大家好&#xff0c;我叫这是我58。 程序 Game.cpp源文件 #include <iostream> #include "Player.h" using namespace std; void printma…

【环保背景高管1009】2022顶刊论文数据,环保背景高管对投资的影响探究

今天给大家分享的是国内顶刊数量经济技术经济研究2022年发布的名为《高管环保背景与绿色投资者进入》论文使用到的数据——高管环保背景数据以及管理自主权的高管环保背景数据&#xff0c;该文章利用中国上市公司沪深A股2007-2017年的面板数据&#xff0c;采用双向固定效应模型…

YOLOv11改进 | 独家创新- 注意力篇 | YOLOv11结合全新多尺度线性注意力机制MLAttention(全网独家创新)

1. MLAttention介绍 (1). 多尺度卷积操作&#xff1a;MLAttention通过多尺度卷积操作来增强不同尺度的特征表达能力。采用了多种卷积核尺寸&#xff08;例如5x5、1x7、7x1、1x11、11x1、1x21、21x1&#xff09;的深度可分离卷积来捕捉不同感受野的特征。较小的卷积核擅长捕捉细…

四,MyBatis-Plus 当中的主键策略和分页插件的(详细实操使用)

四&#xff0c;MyBatis-Plus 当中的主键策略和分页插件的(详细实操使用) 文章目录 四&#xff0c;MyBatis-Plus 当中的主键策略和分页插件的(详细实操使用)1. 主键策略1.1 主键生成策略介绍 2. 准备工作&#xff1a;2.1 AUTO 策略2.2 INPUT 策略2.3 ASSIGN_ID 策略2.3.1 雪花算…