事件委托,其他事件,电梯导航,固定导航

server/2025/1/23 9:06:41/
htmledit_views">

事件委托改造 tab 栏切换 

tab栏切换:前边的案例是 for 循环遍历每个 li 注册鼠标进入事件,给添加了 active类的 a 删除掉 active类,然后给点击的 a 添加上 active类(也就是将已经有的 active 类删除掉,为当前点击到的 a 加上 active类)

现在通过事件委托形式也就是不再给每个 li 注册点击事件给 li 中的 a 删除添加类了,而是给 a 的祖元素注册点击事件,但是其实点击的还是 a ,但是通过冒泡的话 点击 a 是能冒泡到祖先元素的,所以直接通过 祖 元素去监听点击事件

阻止默认行为 

其他事件 :

  • 页面加载事件
  • 页面滚动事件
  • 页面尺寸事件

页面加载事件:

  • 一般写在 head中的 js 代码是不能 执行,因为代码是从上往下, js 中找不到对应的 html 代码
  • 可以先加载外部资源,加载完毕时触发的事件:两种,一种 load , 一种 DOMContentLoaded

 

页面滚动事件 

大多数是想要知道 浏览器页面滚动了多少而不是 某个元素的滚动

 div 大于 100 显示,小于 100 隐藏

希望一打开滚动条不是在最顶部,而是与顶部有一段距离 。那么就写在滚动事件监听的外面为页面的滚动赋值,然后再事件监听的里面获取页面滚动的距离数字。

由此可见页面滚动是可读可写的

 ​

小兔鲜 电梯导航 案例:

  • 获取被卷去的滚动条数
  • 判断该条数是否大于300,大于的话就让透明度为1,显示侧边导航。否则就透明度为0,不显示侧边导航
  • 为 “顶部”按钮注册点击事件,点击回到页面尺寸为 (0,0)的位置,也就是顶部。也可以注册的是滚动条事件,直接滚动到数字为 0 的位置,也就是顶部

页面尺寸事件

 

仿京东固定导航栏案例:

  • 因为不是显示隐藏,是滑动,所以一开始位置 top 位置是 负的
  • 当滚动到 秒杀 模块 之后, top 位置慢慢变成 正数,也就是慢慢滑出来

一开始将 头部位置改为 -80,也就看不见了

如果 滚动到的位置头部大于等于 秒杀 模块的头部位置,那么就将头部导航显现出来,也就是让头部位置为 0 ,否则就是 -80px

改:const n = document.documentElement.scrollTop,图中写错了

还有一种写法就是三元运算符

实现 bilibili 点击小滑块移动效果

  • 给 导航 中每个 a 添加点击事件,运用事件委托的形式,也就是 a 的父级元素检测到点击时(其实该点击是 点击的 a ,但是冒泡之后连父级元素也一并点击了,所以父级元素检测到点击事件,也就是点击了 a ,那么就开始执行处理程序) 
  • 其次之所以还要判断是否点击的是 a ,是因为点击父级元素盒子的其他地方也是有反应的,而我们只是要点击了 a 时候的反应,所以还是要确保点击的是 a 标签。然后将 line线盒子移动到所点击的 事件的 左边位置

 

 

电梯导航案例:

防止变量污染,因为两个模块之间没有关系

为侧边导航添加点击事件,点击到的 a 判断其是否添加了 active,如是则删除再添加active类,没有的话就直接添加active类

点击侧边栏的 a ,页面滑动到相应的 板块。

  • 侧边栏的 a 中有自定义属性,而相应板块中的类名的最后一部分是相应的 a 中自定义属性值,所以可以获取 a 中自定义 属性值作为变量在获取相应模块元素应用到类时,作为类的最后部分。然后获取相应模块的上滚动距离。
  • 将该距离赋值为页面滚动距离

点击侧边栏时相应模块丝滑滚动

页面滚动,滚动到相应模块时给侧边导航相应的 a 加上 active 类

  • 首先页面滚动,将所有 active 类删除
  •  再者获取 4 个模块的大盒子
  • 判断页面滚动距离和各个模块上边距相比如何,在模块之间就加上 active 类

 

属性选择器

因为 有两个 input ,要选择所需要的那个与另一个的区别是 type 的值,所以属性选择器就是选择出不一样的

两个 input 最明显的就是一个有 value 属性,一个没有,那么就可以直接用 value 属性

 


http://www.ppmy.cn/server/160693.html

相关文章

技术洞察:C++在后端开发中的前沿趋势与社会影响

文章目录 引言C在后端开发中的前沿趋势1. 高性能计算的需求2. 微服务架构的兴起3. 跨平台开发的便利性 跨领域技术融合与创新实践1. C与人工智能的结合2. C与区块链技术的融合 C对社会与人文的影响1. 提升生产力与创新能力2. 促进技术教育与人才培养3. 技术与人文的深度融合 结…

【统计信号处理基础——估计与检测理论】Vol1.Ch2. 最小方差无偏估计

系列目录 【统计信号处理基础——估计与检测理论】Vol1.Ch1. 引言 文章目录 1. 无偏估计量2. 最小方差准则3. 最小方差无偏估计的存在性4. 求最小方差无偏估计量5. 扩展到矢量参数习题2.1 本章寻找未知确定性参数的好的估计量。我们将注意力限制在通过平均产生真值的估计量上&a…

SpringBoot为什么要禁止循环依赖?

大家好,我是锋哥。今天分享关于【SpringBoot为什么要禁止循环依赖?】面试题。希望对大家有帮助; SpringBoot为什么要禁止循环依赖? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Spring Boot 禁止循环依赖的原因与 Spring 框架本身的设计…

低空经济(2)国外发展概述

低空经济国外发展概述 1.概述2.美国3.欧洲4.其他地区 1.概述 世界低空经济起步于农业服务,1920年后公务航空进入市场。二战推动的技术进步使低空经济迅猛发展,1950年直升机进入低空经济市场,开始海上石油服务、山地救援等业务。截至2014年&a…

C++ 模拟真人鼠标轨迹算法 - 防止游戏检测

一.简介 鼠标轨迹算法是一种模拟人类鼠标操作的程序,它能够模拟出自然而真实的鼠标移动路径。 鼠标轨迹算法的底层实现采用C/C语言,原因在于C/C提供了高性能的执行能力和直接访问操作系统底层资源的能力。 鼠标轨迹算法具有以下优势: 模拟…

Spring Boot拦截器:掌握Web请求的“守门员”

在Spring Boot中,拦截器(Interceptor)就像是一个门卫,能够在请求到达控制器之前或之后进行一些检查或操作。使用拦截器通常包含以下几个步骤: 1. 定义拦截器 首先,你需要创建一个拦截器类,这个…

springboot基于微信小程序的停车场预订系统

Spring Boot 基于微信小程序的停车场预订系统 在城市交通日益拥堵,停车难问题愈发凸显的当下,Spring Boot 基于微信小程序的停车场预订系统为车主们提供了便捷高效的停车解决方案,让出行停车变得从容有序。借助 Spring Boot 强大的后端开发能…

xceed PropertyGrid 如何做成Visual Studio 的属性窗口样子

类似这样的&#xff0c;我百度了一下&#xff0c;发现使用Xceed 不错。使用PropertyGrid 前台代码为 <Windowx:Class"WpfApp.MainWindow"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.co…