WEB前端-笔记(二)

一、事件

1.1类型

focus 获取焦点事件

ipt.addEventListener("focus", () => {
    .log("")
})

blue 失去焦点事件

ipt.addEventListener("blur", () => {
    console.log("")
})

inout 文本输入事件

txt.addEventListener("input", () => {
    console.log("")
})

change 文本改变事件

txt.addEventListener("change", () => {
    console.log("")
})

mouseenter 鼠标移入事件

txt.addEventListener("mouseenter", () => {
    txt.style.backgroundColor = ""
})

mouseleava 鼠标移出事件

txt.addEventListener("mouseleave", () => {
    txt.style.backgroundColor = ""
})

keydown 键盘按下事件

txt.addEventListener("keydown", () => {
    console.log("")
})

keyup 键盘弹开事件

txt.addEventListener("keyup", (a) => {
    console.log("")
})

1.2对象

帮忙记录此次事件触发的所有类型信息,包括触发哪些事件类型、按下哪些键盘按键等等

const txt = document.querySelector("textarea")
    txt.addEventListener("keydown", (event) => {
    console.log(event)
    if (event.code == "Enter") {
        console.log("")
    }
})

1.3页面加载事件

window.addEventListener("load", function () {
    const btn = document.querySelector("button")
    btn.addEventListener("click", () => {
        console.log("")
    })
})

load 等待页面所有资源加载完毕再执行函数

1.4滚动事件

scroll 滚动;该事件一般添加于"window"、"document"、"html"

window.addEventListener("scroll", function () {
    console.log("")
})

scrollLeft 获取元素向左滚出的高度

window.addEventListener("scroll", function () {
    console.log(document.documentElement.scrollLeft)
})

scrollTop 获取元素向上滚出的高度

window.addEventListener("scroll", function () {
    if (document.documentElement.scrollTop >= 1000) {
        document.querySelector("div").style.display = "block"
    }
    document.querySelector("div").addEventListener("click", function () {
        document.documentElement.scrollTop = 0
        document.querySelector("div").style.display = "none"
    })
})

当页面滚出一定距离时,点击“div”回到顶部

1.5尺寸事件

resize

 window.addEventListener("resize", () => {
    console.log("")
})

1.6捕获&冒泡事件

true 捕获;false 冒泡

const gf = document.querySelector(".grandFather")
const f = document.querySelector(".father")
const s = document.querySelector(".son")
gf.addEventListener("click", function (e) {
    console.log("我是爷爷触发的事件")
    e.stopPropagation()
})
f.addEventListener("click", function (e) {
    console.log("我是爸爸触发的事件")
    e.stopPropagation()
})
s.addEventListener("click", function (e) {
    console.log("我是儿子触发的事件")
    e.stopPropagation()
})

1.7阻止表单提交

const btn = document.querySelector("button")
btn.addEventListener("click", function (e) {
    e.preventDefault()
})

1.8全选案例

const all_check = document.querySelector("#checkAll")
const cks = document.querySelectorAll(".ck")

功能一:点击“全选”按钮,下列列表被全选

all_check.addEventListener("click", function () {
    if (all_check.checked == true) {
        for (let i = 0; i < cks.length; i++) {
        cks[i].checked = true
    }
}
    else {
        for (let i = 0; i < cks.length; i++) {
            cks[i].checked = false
        }
    }
})

功能二:将下列列表全选,“全选”按钮被选择

for (let i = 0; i < cks.length; i++) {
    cks[i].addEventListener("click", function () {
        let num1 = document.querySelectorAll(".ck:checked")
        if (num1.length == cks.length) {
            all_check.checked = true
        }
        else {
            all_check.checked = false
        }
    })
}

1.9事件委托

利用事件监听里的冒泡

const ul = document.querySelector("ul")
ul.addEventListener("click", function (e) {
    if (e.target.tagName === "LI") {
        e.target.style.backgroundColor = "red"
    }
})

1.10client&offset

clientWidth/clientHeight 获取元素可视区域的宽度/高度,不包括边框、margin、滚动条

const box = document.querySelector("div")
console.log(box.clientWidth)
console.log(box.clientHeight)

offsetWidth/offsetHeight 获取元素自身的宽/高,包括padding、border

console.log(box.offsetWidth)
console.log(box.offsetHeight)

1.11换取元素的位置

获取元素距离自己已有定位的父级元素的左&上距离

const box = document.querySelector("div")
const p = document.querySelector("p")
console.log(p.offsetTop)
console.log(p.offsetLeft)

1.12创建节点

创建节点

const btn = document.querySelector("button")
const ul = document.querySelector("ul")
btn.addEventListener("click", function () {
    const newLi = document.createElement("li")
})

给新创建的元素追加内容

btn.addEventListener("click", function () {
    const newLi = document.createElement("li")
    newLi.innerHTML = ``
})

追加节点至指定位置

btn.addEventListener("click", function () {
    const newLi = document.createElement("li")
    newLi.innerHTML = ``
    ul.insertBefore(newLi, ul.children[0])
})

1.13克隆节点

cloneNode(true) 表示克隆时将后代节点一起克隆,默认情况下为“false”

const li = document.querySelector("ul li")
const newli = li.cloneNode(true)
console.log(newli)

1.14删除节点

必须基于父元素进行删除

const ul = document.querySelector("ul")
ul.removeChild(ul.children[1])

1.15setTimeout

主要用来指定函数某段代码,在一定时间之后执行,返回一个整数,作为定时器的编号,以此后期清除定时器

根据定时器返回的整数清除定时器

let timer2 = setTimeout('console.log("Hello Word")', 3000)
clearTimeout(timer2)

在全局作用域下,this关键字指向window;对象中的this,默认指向对象本身;箭头函数没有this的作用域

1.16setInterval

每隔一定时间,执行一次代码

let timer = setInterval(function (a, b) {
    console.log("hello word")
    console.log(a)
    console.log(b)
}, 1000, 1, 2)
console.log(timer)

1.17clearInterval

用来停止setInterval()方法执行的函数代码

let timer = setInterval(function (a, b) {
    console.log("hello word")
    console.log(a)
    console.log(b)
}, 1000, 1, 2)
console.log(timer)
clearInterval(timer)

二、

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

实在智能协办2024中国核能行业RPA数字员工专项培训会

2024年中国核能行业RPA数字员工专项培训会于4月16日-19日在杭州举办&#xff0c;由中国核能行业协会信息化专业委员会主办、实在智能承办。本次培训由理论讲解、技术深化和实际操作三部分组成&#xff0c;旨在帮助核能行业从业人员学习与掌握基于大模型的RPA技术应用&#xff0…

NVIDIA NCCL 源码学习(十四)- NVLink SHARP

背景 上节我们介绍了IB SHARP的工作原理&#xff0c;进一步的&#xff0c;英伟达在Hopper架构机器中引入了第三代NVSwitch&#xff0c;就像机间IB SHARP一样&#xff0c;机内可以通过NVSwitch执行NVLink SHARP&#xff0c;简称nvls&#xff0c;这节我们会介绍下NVLink SHARP如…

使用 Meta Llama 3 构建人工智能的未来

使用 Meta Llama 3 构建人工智能的未来 现在提供 8B 和 70B 预训练和指令调整版本,以支持广泛的应用 使用 Meta AI 体验 Llama 3 我们已将 Llama 3 集成到我们的智能助手 Meta AI 中,它扩展了人们完成工作、创造和与 Meta AI 联系的方式。通过使用 Meta AI 进行编码任务和解…

从零到一品牌电商私域流量代运营规划方案

【干货资料持续更新&#xff0c;以防走丢】 从零到一品牌电商私域流量代运营规划方案 部分资料预览 资料部分是网络整理&#xff0c;仅供学习参考。 PPT共50页&#xff08;完整资料包含以下内容&#xff09; 目录 私域运营方案&#xff1a; 一、项目背景与目标 - 开创数智化…

华为路由器基于接口限速

一、背景 ISP与企业内网通过华为路由器接入Internet时,当大量流量进入路由器时,可能会因为带宽不足产生拥塞,导致丢包,严重影响用户上网体验。对于此需要对网络流量进行限制,其方式通常有防火墙带宽策略、路由器基于接口限速等。 二、华为路由器基于接口限速方式 在路由…

Docker 部署 MongoDB 数据库

文章目录 官网地址docker 网络mongod.conf部署 MongoDB部署 mongo-expressdocker-compose.ymlMongoDB shell 官网地址 https://www.mongodb.com/zh-cn docker 网络 # 创建 mongo_network 网络 docker network create mongo_network # 查看网络 docker network list # 容器连…

RT-Thread在Win10下编译出现 unsupported pickle protocol: 5解决方案

调试背景&#xff1a; 在WIN10下编译RT-Thread源码&#xff1a;对象处理器平台是Microchip SAMA5D27-SOM1-EK评估板。 unsupported pickle protocol: 5 编译出现报错:ValueError : unsupported pickle protocol: 5 $ scons scons: Reading SConscript files ... Newlib ver…

MySQL:执行一条查询语句期间发生了什么?

MySQL的架构分为两层&#xff0c;Server 层和存储引擎层 server层负责建立连接、分析和执行SQL&#xff0c;MySQL&#xff0c;MySQL大多数的核心功能模块都在在这里实现&#xff0c;下图上半部分都是server层做的事情&#xff0c;另外&#xff0c;所有的内置函数&#xff08;如…

在mini2440上编写linux应用程序、字符设备驱动程序的编写与编译

在mini2440上编写linux应用程序 结合前两篇的学习&#xff0c;一个linux操作系统已经在mini2440上运行起来了&#xff0c;结合交叉编译环境和nfs等工具&#xff0c;我们可以在mini2440上编写任何我们在linux系统编程中学到的应用程序。一个简要的多文件Makefile文件如下&#…

设计模式——2_9 模版方法(Template Method)

人们往往把任性也叫做自由&#xff0c;但是任性只是非理性的自由&#xff0c;人性的选择和自决都不是出于意志的理性&#xff0c;而是出于偶然的动机以及这种动机对感性外在世界的依赖 ——黑格尔 文章目录 定义图纸一个例子&#xff1a;从文件中获取信息分几步&#xff1f;Rea…

基于Spingboot+vue协同过滤音乐推荐管理系统

项目演示视频效果&#xff1a; 基于Spingbootvue协同过滤音乐推荐管理系统 基于Spingbootvue协同过滤音乐推荐管理系统 1、项目介绍 基于Springboot的音乐播放管理系统总共两个角色&#xff0c;用户和管理员。用户使用前端前台界面&#xff0c;管理员使用前端后台界面。 有推荐…

Golang内存、指针逃逸、垃圾回收机制概览

最近看到了一篇文章是关于go的内存、指针逃逸和垃圾回收机制的&#xff0c;发现自己并未很细致的了解过这方面的内容&#xff0c;于是在翻阅各种文章的情况下&#xff0c;写出了这篇总结&#xff0c;参考文章放在文末&#xff0c;可自取 内存 Go 语言使用一个自带的垃圾收集器…

【S32K3 入门系列】- ADC 模块简介(上)

一、 前言 对于 S32K3 系列的初学者来说&#xff0c;S32K3 系列的参考手册阅读难度是让人望而却步的&#xff0c;本系列将对 S32K3 系列的外设进行逐一介绍&#xff0c;对参考手册一些要点进行解析。本文旨在介绍 S32K3 系列的 ADC 模块&#xff0c; ADC&#xff08;Analog to…

node端导出excel-用请求排队来限流

需求 有一个会执行luckySheet脚本并且导出excel的node接口&#xff0c;会在每天凌晨执行&#xff0c;但是文件过大时会内存溢出 之前有用worker来实现多线程&#xff08;主要是避免变量污染&#xff09;&#xff0c;但这样只能保证主线程不卡死&#xff0c;几个子线程合起来占用…

MDC搭配ttl使用!!!

一、简介 MDC 介绍​ MDC&#xff08;Mapped Diagnostic Context&#xff0c;映射调试上下文&#xff09;是 log4j 和 logback 提供的一种方便在多线程条件下记录日志的功能。MDC 可以看成是一个与当前线程绑定的Map&#xff0c;可以往其中添加键值对。MDC 中包含的内容可以被…

使用yolov8 进行实例分割训练

1、基于windows 的ISAM标注 直接下载安装包&#xff0c;解压后即可使用 链接&#xff1a;https://pan.baidu.com/s/1u_6jk-7sj4CUK1DC0fDEXQ 提取码&#xff1a;c780 2、标注结果转yolo格式 通过ISAM标注后的json文件路径 原始json格式如下&#xff1a; ISAM.json 转 yolo.…

牛客2024 【牛客赛文X】春招冲刺 ONT34 加油站【中等 贪心 C++、Java、Go、PHP】

题目 题目链接&#xff1a; https://www.nowcoder.com/practice/a013a0691a0343aeb262ca1450d2fe4e 思路 贪心&#xff1a; 如果总的gas小于走完全程的cost&#xff0c;直接返回-1不需要再找了 如果确保了可以走完一圈之后&#xff0c;那么从index 0开始找&#xff0c; 当g…

【cygwin】工具安装apt-cyg

目录 下载安装查看是否安装成功安装软件 下载 git clone https://github.com/transcode-open/apt-cyg.git安装 cd apt-cyg mv apt-cyg /usr/local/bin/ 查看是否安装成功 apt-cyg --help安装软件 apt-cyg install nano

视频号小店怎么做?新手开店必备运营攻略,看这一篇就够了

大家好&#xff0c;我是电商笨笨熊 作为腾讯推出的电商项目&#xff0c;视频号小店在推出到现在一直都备受关注&#xff0c;同时也吸引了不少玩家入驻&#xff1b; 毕竟作为一个新平台、新市场&#xff0c;一个适合跑马圈地的红利平台&#xff0c;谁都想在这里分的一杯羹。 …

Linux debian gdb dump

1.开发背景 记录 debian 下应用程序崩溃调试方法 2.开发需求 程序越界可以定位到越界的位置附近 3.开发环境 debian 操作系统&#xff0c;如果不支持需要查看是否存在对应的可执行文件 4.实现步骤 4.1 设置 dump 输出大小 ulimit -c unlimited # 设置输出大小 生成core 文…