WebAPIs 第四天

news2025/2/4 4:05:52

1.日期对象

2.节点操作

3.M端事件

4.JS插件

一.日期对象

  • 实例化
  • 时间对象方法
  • 时间戳

日期对象:用来表示时间的对象

作用:可以得到当前系统时间

1.1 实例化

① 概念:在代码中发现了new关键字时,一般将这个操作称为实例化

② 创建一个时间对象并获取时间

  •  获取当前时间
const date = new Date()
  • 获得指定时间
const date = new Date('2022-01-05 08:28')

1.2 时间对象方法

日期对象返回的数据我们不能直接使用,所以需要转换为实际开发中常用的格式

const date = new Date() 
console.log(date.getFullYear())
console.log(date.getMonth() + 1)

let h = date.getHours()
let m = date.getMinutes()
let s = date.getSeconds()

1.3  时间戳

① 概念:指的是1970年01月01日00分00秒起到现在的毫秒数,是一种特殊的计量时间的方式

② 算法

  • 将来的时间戳 - 现在的时间戳 = 剩余时间毫秒数
  • 剩余时间毫秒数转换为剩余时间的年月日就是倒计时时间
  • 1秒 = 1000毫秒

 ③ 获取时间戳

  • 使用getTime() 方法 (需要实例化)
const date = new Date()
console.log(date.getTime())
  • 简写 new Date() (无需实例化)
console.log(+new Date())
  • 使用Date.now() (无需实例化)

    但是只能得到当前的时间戳,前两种可以得到指定时间的时间戳

console.log(Date.now())

二.节点操作

  • DOM节点
  • 查找节点
  • 增加节点
  • 删除节点

2.1 DOM节点

① DOM节点:DOM树里面的每一个内容都称为节点

② 节点类型:

  • 元素节点:所有的标签,比如div body
  • 属性节点:所有的属性,比如href
  • 文本节点: 所有的文本
  • 其他

2.2 查找节点

① 节点关系

  • 父节点

   (1)parentNode属性

     (2)返回的最近一级的父节点,找不到返回为null

     (3) 语法:节点.parentNode   

const baby = document.querySelector('.son')
console.log(baby.parentNode.parentNode)
  • 子节点

     (1)childNodes  获得所有子节点,包括文本节点(空格,换行),注释节点等

     (2)children属性 :仅获得所有元素节点,返回一个伪数组

     (3)语法:节点.children

const ul = document.querySelector('ul')
// 获取所有子节点
console.log(ul.children) //选择最近一级孩子

    

  • 兄弟节点

       (1) 下一个兄弟节点:nextElementSibling 属性

     (2)上一个兄弟节点:previousElementSibling 属性

const li2 = document.querySelector('ul li:nth-child(2)')
console.log(li2.nextElementSibling)
console.log(li2.previousElementSibling)

2.3 增加节点

① 创建一个新节点

  • 概念:创造一个新的网页元素,再添加到网页内,一般先创建节点,然后插入节点
  • 创建元素节点方法: document.createElement('标签名')
const div = document.createElement('div')
console.log(div)

② 追加节点(还需要插入到某个父元素中)

  • 插入到父元素的最后一个子元素:    appendChild
const div = document.createElement('div')
console.log(div)
document.body.appendChild(div)
  • 插入到父元素的某个子元素的前面: insertBefore
const ul = document.querySelector('ul')
const li = document.createElement('li')
ul.insertBefore(li, ul.children[0])

2.4 克隆节点

① 语法: 元素.cloneNode(布尔值)

② cloneNode 会克隆出一个跟原标签一样的元素,括号中传入布尔值

  • 如果传入的是true,则代表克隆时会包含后代节点一起克隆
  • 如果传入的是false,则表示克隆时不包含后代节点
  • 默认为false
    <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
    </ul>
    <script>
        const ul = document.querySelector('ul')
        const li1 = ul.children[0].cloneNode(true)
        ul.appendChild(li1)
    </script>

 2.5 删除节点

  ① 删除元素必须通过父元素删除

  ② 语法: 父元素.removeChild(要删除的元素)

 ③ 注意

  • 如果不存在父子关系则删除不成功 

三.M端事件

① 移动端也有自己独特的地方,比如触屏事件touch,android和ios都有

② touch对象代表一个触摸点,触摸点可能是一根手指,也可能是一根触摸笔,触屏事件可响应用户手指对屏幕或者触控板操作

③ 常见的触屏事件

        const div = document.querySelector('div')
        div.addEventListener('touchstart', function() {
            console.log('开始触摸')
        })

        div.addEventListener('touchmove', function() {
            console.log('一直触摸')
        })

        div.addEventListener('touchend', function() {
            console.log('停止触摸')
        })

四. JS插件 -- swiper

① 插件的概念:就是别人写好的一些代码,我们只需要复制对应的代码,就可以实现对应的效果② 学习插件过程

  • 熟悉官网,了解这个插件可以完成什么需求
  • 看在线演示,找到符合自己需求的demo
  • 查看基本使用流程
  • 查看API文档,去配置自己的插件
  • 多个swiper同时使用的时候,类名需要注意区分

swipper的 使用

<!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>Document</title>
    <link rel="stylesheet" href="./css/swiper.min.css">
    <style>
        .box {
            width: 600px;
            height: 200px;
            background-color: pink;
            margin: 100px;
        }
        html, body {
      position: relative;
      height: 100%;
    }
    body {
      background: #eee;
      font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
      font-size: 14px;
      color:#000;
      margin: 0;
      padding: 0;
    }
    .swiper-container {
      width: 100%;
      height: 100%;
    }
    .swiper-slide {
      text-align: center;
      font-size: 18px;
      background: #fff;

      /* Center slide text vertically */
      display: -webkit-box;
      display: -ms-flexbox;
      display: -webkit-flex;
      display: flex;
      -webkit-box-pack: center;
      -ms-flex-pack: center;
      -webkit-justify-content: center;
      justify-content: center;
      -webkit-box-align: center;
      -ms-flex-align: center;
      -webkit-align-items: center;
      align-items: center;
    }
    </style>
</head>
<body>
    <div class="box">
        <div class="swiper-container">
            <div class="swiper-wrapper">
              <div class="swiper-slide">Slide 1</div>
              <div class="swiper-slide">Slide 2</div>
              <div class="swiper-slide">Slide 3</div>
              <div class="swiper-slide">Slide 4</div>
              <div class="swiper-slide">Slide 5</div>
              <div class="swiper-slide">Slide 6</div>
              <div class="swiper-slide">Slide 7</div>
              <div class="swiper-slide">Slide 8</div>
              <div class="swiper-slide">Slide 9</div>
              <div class="swiper-slide">Slide 10</div>
            </div>
            <!-- Add Pagination -->
            <div class="swiper-pagination"></div>
          </div>      
    </div>
    <script src="./js/swiper.min.js"></script>
    <script>
        var swiper = new Swiper('.swiper-container', {
          pagination: {
            el: '.swiper-pagination',
          },
          autoplay: {
            delay: 1000,//1秒切换一次
            // 鼠标点击或触摸之后,继续自动播放
            disableOnInteraction: false,
          },
        // 键盘
          keyboard: {
            enabled: true,
            onlyInViewport: true,
        },
        });
      </script>
</body>
</html>

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

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

相关文章

Controller是线程安全吗?如何实现线程安全

测试是否是线程安全 RequestMapping("/test") RestController public class TestController {//1、定义num&#xff0c;判断不同线程访问的时候&#xff0c;num的返回结果是否一致private Integer num0;/*** 2、定义两个方法*/GetMapping("/count1")publi…

一个注解实现分布式锁

文章首发微信公众号《java知路》 分布式锁原理 分布式锁是一种用于在分布式系统中协调多个节点并保证数据一致性的机制。它的目的是在分布式环境下实现互斥访问共享资源&#xff0c;以防止多个节点同时对共享资源进行修改或读取&#xff0c;从而保证数据的正确性和一致性。 实…

单向-->不带头-->非循环链表(简称:单链表)

目录 一、链表的介绍 1.链表的概念 2.单链表的节点类型 3.单链表简图 二、单链表的增删查改 1.单链表的头插 2.单链表的尾插 3.单链表的头删 4.单链表的尾删 5.单链表pos位置之后插入一个节点 6.单链表删除pos位置后的一个节点 一、链表的介绍 1.链表的概念 链表是一…

如何搬运订单(1688)

目录 下载安装与运行 任务描述 搬运具体要求&#xff08;示例&#xff09; 订单导出操作过程 搜索指定范围的订单 选择要导出的订单数据 完整的导出动画演示 切换到另一个账号 B账号批量下单的要求 下单步骤 下单设置 为啥选加采购车而不是立即下单 为啥要选自动情…

Java-方法

在编程中&#xff0c;我们也可以将频繁使用的代码封装成"帖子"(方法)&#xff0c;需要时直接拿来链接 方法就是一个代码片段. 类似于 C 语言中的 “函数” 方法定义 修饰符 返回值类型 方法名称([参数类型 形参 …]){ 方法体代码; [return 返回值]; } 这里比得C语言…

关于视频人工智能/机器视觉创业商业模式的一些思考

今年开始了我的第二次创业&#xff0c;第一次创业大家看我以前的博客就知道了&#xff0c;做音视频流媒体相关技术的&#xff0c;现在公司也已经是安徽省专精特新中小企业了&#xff0c;还好是“中小企业”&#xff0c;如果直接是专精特新企业&#xff0c;我就可以不用来视频人…

地理测绘基础知识(2)-椭球最短距离计算

在上一篇中&#xff0c;我们介绍了ECEF坐标系和经纬度的互换。 本篇&#xff0c;主要介绍已知A\B两个点的经纬度&#xff0c;如何求取椭球上的最短距离、路径。 在标准椭球面上&#xff0c;从A点运动到B点&#xff0c;距离如何&#xff0c;轨迹、每个阶段的方向又是如何呢&am…

consul安装启动流程

普通软件包安装 首先cd /opt &#xff0c;将安装包放到该目录下 下载consul安装包 进入consul官网找到自己开发平台对应的安装包下载 https://www.consul.io/downloads.html 或使用命令 wget https://releases.hashicorp.com/consul/1.6.2/consul_1.6.2_linux_amd64.zip (如果…

【K8S系列】深入解析k8s网络插件—Weave Net

序言 做一件事并不难&#xff0c;难的是在于坚持。坚持一下也不难&#xff0c;难的是坚持到底。 文章标记颜色说明&#xff1a; 黄色&#xff1a;重要标题红色&#xff1a;用来标记结论绿色&#xff1a;用来标记论点蓝色&#xff1a;用来标记论点 Kubernetes (k8s) 是一个容器编…

MySQL数据库练习

目录 表结构 建表 插入数据 1、用SQL语句创建学生表student&#xff0c;定义主键&#xff0c;姓名不能重名&#xff0c;性别只能输入男或女&#xff0c;所在系的默认值是 “计算机”。 2、修改student 表中年龄&#xff08;age&#xff09;字段属性&#xff0c;数据类型由…

开源数据库Mysql_DBA运维实战 (修改root密码)

MySQL——修改root密码的4种方法 本文以windows为例为大家详细介绍下MySQL修改root密码的4种方法&#xff0c;大家可以可以根据的自己的情况自由选择&#xff0c;希望对大家有所帮助 方法1&#xff1a; 用SET PASSWORD命令 首先登录MySQL。 格式&#xff1a;mysql> set pass…

linux 学习————LNMP之分布式部署

目录 一、概述 二、LNMP环境部署 三、配置nginx 四、 配置php使nginx能够解析.php 五、配置mysql 六、配置discuz进行登录论坛访问测试 一、概述 LNMP代表 Linux、Nginx、MySQL、PHP&#xff0c;是一种常用的服务器架构。它由以下组件组成&#xff1a; Linux&#xff1a;作…

【2023新教程】树莓派4B开机启动-树莓派第一次启动-树莓派不使用显示器启动-树莓派从购买到启动一步一步完全版!

背景 闲来无事&#xff0c;在咸鱼上买了一个树莓派4B。买来配件都十分齐全&#xff0c;于是就想着启动来测试一下。下面是树莓派无显示器第一次启动的全过程&#xff0c;包含安装系统。 网上的教程大多需要额外使用显示器、鼠标、键盘之类的外设。然而&#xff0c;树莓派本身就…

阿里云服务器是什么?阿里云服务器有什么优缺点?

阿里云服务器是什么&#xff1f;云服务器ECS是一种安全可靠、弹性可伸缩的云计算服务&#xff0c;云服务器可以降低IT成本提升运维效率&#xff0c;免去企业或个人前期采购IT硬件的成本&#xff0c;阿里云服务器让用户像使用水、电、天然气等公共资源一样便捷、高效地使用服务器…

[数据集][目标检测]骑电动车摩托车不戴头盔数据集VOC格式1385张

数据集格式&#xff1a;Pascal VOC格式(不包含分割路径的txt文件和yolo格式的txt文件&#xff0c;仅仅包含jpg图片和对应的xml) 图片数量(jpg文件个数)&#xff1a;1385 标注数量(xml文件个数)&#xff1a;1385 标注类别数&#xff1a;2 标注类别名称:["y","n&q…

工业物联网数据桥接教程:Modbus 桥接到 MQTT

Modbus 介绍 Modbus 是一种串行通信协议&#xff0c;用于连接工业自动化设备&#xff0c;最初由 Modicon 公司开发&#xff0c;诞生于 1979 年&#xff0c;现在已成为通用的通讯标准之一&#xff0c;广泛用于工业自动化场景。 Modbus 采用主从模式&#xff0c;支持多种传输方…

jacoco功能测试-代码覆盖率

1、下载 jacoco 官网地址&#xff1a;EclEmma - JaCoCo Java Code Coverage Library 2、拷贝 jar 包 下载好后&#xff0c;找到这两个文件&#xff0c;然后找到被测项目 3、启动 jacocoagent&#xff0c;监控被测项目 java -javaagent:jacocoagent.jarincludes*,outputtcp…

BGP总结

前言 我们从动态路由协议的应用范围可以分为IGP&#xff08;内部网关协议&#xff09;和EGP&#xff08;外部网关协议&#xff09;。 IGP协议追求&#xff1a; 无环&#xff08;选路佳&#xff09;收敛快占用资源少 EGP协议的追求 可控性强&#xff08;管理员可以方便进行…

Rx.NET in Action 第二章学习笔记

Part 1 初入反应式扩展 2 Hello, Rx 本章节涵盖的内容: 不使用Rx的工作方式向项目中添加Rx创建你的第一个Rx应用程序 Rx 的目标是协调和统筹来自社交网络、传感器、用户界面事件等不同来源的基于事件的异步计算。例如&#xff0c;建筑物周围的监控摄像头和移动传感器会在有人靠…

激活函数总结(三):激活函数补充

激活函数总结&#xff08;三&#xff09;&#xff1a;激活函数补充 1 引言2 激活函数2.1 Softmax激活函数2.2 Softplus激活函数2.3 Mish激活函数2.4 Maxout激活函数 3. 总结 1 引言 在前面的文章中已经介绍了过去大家较为常见的激活函数 (Sigmoid、Tanh、ReLU、Leaky ReLU、PR…