前端学习-页面尺寸事件以及阻止默认行为(三十三)

目录

前言

页面尺寸事件

语法

检测屏幕宽度

获取宽高

元素尺寸的位置

总结

示例代码

阻止默认行为

阻止冒泡

语法

阻止冒泡如何做

阻止元素默认行为如何做

总结



前言

晚上好各位


页面尺寸事件

会在窗口尺寸改变的时候触发条件

语法

window.addEventListener('resize',function(){//执行的代码})

检测屏幕宽度

window.addEventListener('resize',function(){let w= document.documentElement.clientwidth;console.1og(w)})

获取宽高

获取元素的可见部分宽高(不包含边框,margin,滚动条等)clientwidth和clientHeight

元素尺寸的位置

使用场景:前面案例滚动多少距离,都是我们自己算的,最好是页面滚动到某个元素,就可以做某些事

简单说,就是通过js的方式,得到元素在页面中的位置

这样我们可以做,页面滚动到这个位置,就可以做某些操作,省去计算了

获取宽高:获取元素的自身宽高、包含元素自身设置的宽高、padding、border

offsetwidth和offsetHeight获取出来的是数值,方便计算注意:获取的是可视宽高,如果盒子是隐藏的,获取的结果是0

获取位置:获取元素距离自己定位父级元素的左、上距离 offsetLeft和offsetTop 注意是只读属性

总结

1.offsetWidth和offsetHeight是得到元素什么的宽高?

内容+padding+ border

2.offsetTop和offsetLeft 得到位置以谁为准?

带有定位的父级,如果都没有则以 文档左上角 为准

示例代码

<!DOCTYPE html>
<html lang="zh-CN">
<!-- 声明文档类型为 HTML5 -->
​
<head><meta charset="UTF-8"><!-- 设置字符编码为 UTF-8 --><meta name="viewport" content="width=device-width, initial-scale=1.0"><!-- 设置视口,使页面宽度适应设备宽度,并初始缩放比例为 1.0 --><title>页面尺寸事件示例</title><!-- 设置页面标题 --><style>body {font-family: Arial, sans-serif;/* 设置字体为 Arial 或其他无衬线字体 */display: flex;/* 使用 Flexbox 布局 */justify-content: center;/* 水平居中内容 */align-items: center;/* 垂直居中内容 */height: 100vh;/* 设置高度为视口高度的 100% */margin: 0;/* 移除默认的外边距 */background-color: #f0f0f0;/* 设置背景颜色为浅灰色 */}
​#info {text-align: center;/* 文本居中对齐 */background-color: #fff;/* 设置背景颜色为白色 */padding: 20px;/* 设置内边距为 20px */border-radius: 8px;/* 设置圆角为 8px */box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);/* 设置阴影效果 */}
​@media (max-width: 600px) {
​/* 当屏幕宽度小于或等于 600px 时应用以下样式 */#info {padding: 15px;/* 设置内边距为 15px */border-radius: 6px;/* 设置圆角为 6px */}}</style>
</head>
​
<body><div id="info"><!-- 包含显示窗口宽度和高度的段落 --><p>当前窗口宽度: <span id="width">0</span>px</p><!-- 显示当前窗口宽度 --><p>当前窗口高度: <span id="height">0</span>px</p><!-- 显示当前窗口高度 --><p>元素宽度 (offsetWidth): <span id="elementWidth">0</span>px</p><!-- 显示元素的 offsetWidth --><p>元素高度 (offsetHeight): <span id="elementHeight">0</span>px</p><!-- 显示元素的 offsetHeight --><p>元素顶部偏移 (offsetTop): <span id="elementTop">0</span>px</p><!-- 显示元素的 offsetTop --><p>元素左侧偏移 (offsetLeft): <span id="elementLeft">0</span>px</p><!-- 显示元素的 offsetLeft --></div><script>function updateSize() {const width = window.innerWidth;// 获取当前窗口的可视区域宽度const height = window.innerHeight;// 获取当前窗口的可视区域高度document.getElementById('width').textContent = width;// 更新显示窗口宽度的 span 元素内容document.getElementById('height').textContent = height;// 更新显示窗口高度的 span 元素内容
​const infoElement = document.getElementById('info');// 获取 id 为 'info' 的元素const elementWidth = infoElement.offsetWidth;// 获取元素的 offsetWidth(内容 + padding + border)const elementHeight = infoElement.offsetHeight;// 获取元素的 offsetHeight(内容 + padding + border)const elementTop = infoElement.offsetTop;// 获取元素相对于其包含块的顶部偏移量const elementLeft = infoElement.offsetLeft;// 获取元素相对于其包含块的左侧偏移量
​document.getElementById('elementWidth').textContent = elementWidth;// 更新显示元素宽度的 span 元素内容document.getElementById('elementHeight').textContent = elementHeight;// 更新显示元素高度的 span 元素内容document.getElementById('elementTop').textContent = elementTop;// 更新显示元素顶部偏移的 span 元素内容document.getElementById('elementLeft').textContent = elementLeft;// 更新显示元素左侧偏移的 span 元素内容}
​// 初始调用一次updateSize();// 在页面加载时立即调用 updateSize 函数以显示初始窗口大小和元素尺寸
​// 监听窗口大小变化window.addEventListener('resize', updateSize);// 添加事件监听器,当窗口大小发生变化时调用 updateSize 函数</script>
</body>
​
</html>

阻止默认行为

阻止冒泡

我们某些情况下需要阻止默认情况的发生,比如阻止链接的跳转,表单域跳转

语法

<form action="http://www.baidu.com"<input type="submit" value="提交"></form>
​
<script>
​
const form = document.querySelector('form');
​
form.addEventListener('click',function(e){
​
e.preventDefault()
​
})
​

阻止冒泡如何做

事件对象.stopPropagation();

阻止元素默认行为如何做

e.preventDefault();


总结

晚安各位,祝好梦

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

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

相关文章

el-table表格点击单元格实现编辑

使用 el-table 和 el-table-column 创建表格。在单元格的默认插槽中&#xff0c;使用 div 显示文本内容&#xff0c;单击时触发编辑功能。使用 el-input 组件在单元格中显示编辑框。data() 方法中定义了 tableData&#xff0c;tabClickIndex: null,tabClickLabel: ,用于判断是否…

Windows逆向工程入门之汇编环境搭建

公开视频 -> 链接点击跳转公开课程博客首页 -> ​​​链接点击跳转博客主页 Visual Studio逆向工程配置 基础环境搭建 Visual Studio 官方下载地址安装配置选项(后期可随时通过VS调整) 使用C的桌面开发 拓展可选选项 MASM汇编框架 配置MASM汇编项目 创建新项目 选择空…

redis专栏解读

本篇起导读、目录的作用&#xff0c;介绍redis专栏涉及的内容以及目录。 redis是我们日常开发中常用的NOSQL数据库&#xff0c;本专栏讲讲解redis的内部实现原理&#xff0c;不会侧重于API的使用&#xff0c;遇到API使用上会简单概括。本专栏大致会分为基础部分&#xff08;数…

【华为OD机考】华为OD笔试真题解析(1)--AI处理器组合

一、题目描述 某公司研发了一款高性能AI处理器&#xff0c;每台物理设备具备8颗AI处理器&#xff0c;编号分别为0、1、2、3、4、5、6、7。 编号0~3的处理器处于同一链路中&#xff0c;编号4~7的处理器处于另外一个链路中&#xff0c;不同链路中的处理器不能通信&#xff0c;如…

网络安全-HSTS

什么是HSTS&#xff1f; HTTP严格传输安全协议&#xff08;HTTP Strict Transport Security&#xff0c;简称&#xff1a;HSTS&#xff09; 是互联网安全策略机制。网站可以选择使用HSTS策略&#xff0c;来让浏览器强制使用HTTPS与网站进行通信&#xff0c;以减少会话劫持风险。…

手写一个C++ Android Binder服务及源码分析

手写一个C Android Binder服务及源码分析 前言一、 基于C语言编写Android Binder跨进程通信Demo总结及改进二、C语言编写自己的Binder服务Demo1. binder服务demo功能介绍2. binder服务demo代码结构图3. binder服务demo代码实现3.1 IHelloService.h代码实现3.2 BnHelloService.c…

DeepSeekMoE 论文解读:混合专家架构的效能革新者

论文链接&#xff1a;DeepSeekMoE: Towards Ultimate Expert Specialization in Mixture-of-Experts Language Models 目录 一、引言二、背景知识&#xff08;一&#xff09;MoE架构概述&#xff08;二&#xff09;现有MoE架构的问题 三、DeepSeekMoE架构详解&#xff08;一&a…

人工智能领域-CNN 卷积神经网络 性能调优

在自动驾驶领域&#xff0c;对卷积神经网络&#xff08;CNN&#xff09;进行性能调优至关重要&#xff0c;以下从数据处理、模型架构、训练过程、超参数调整和模型部署优化等多个方面为你详细介绍调优方法&#xff0c;并给出相应的代码示例。 1. 数据处理 数据增强&#xff1…

[每周一更]-(第133期):Go中MapReduce架构思想的使用场景

文章目录 **MapReduce 工作流程**Go 中使用 MapReduce 的实现方式&#xff1a;**Go MapReduce 的特点****哪些场景适合使用 MapReduce&#xff1f;**使用场景1. 数据聚合2. 数据过滤3. 数据排序4. 数据转换5. 数据去重6. 数据分组7. 数据统计8.**统计文本中单词出现次数****代码…

【Pandas】pandas Series var

Pandas2.2 Series Computations descriptive stats 方法描述Series.abs()用于计算 Series 中每个元素的绝对值Series.all()用于检查 Series 中的所有元素是否都为 True 或非零值&#xff08;对于数值型数据&#xff09;Series.any()用于检查 Series 中是否至少有一个元素为 T…

Http 的响应码有哪些? 分别代表的是什么?

HTTP 状态码分为多个类别&#xff0c;下面是常见的 HTTP 状态码及其含义&#xff0c;包括 3xx 重定向状态码的详细区别&#xff1a; &#x1f4cc; HTTP 状态码分类 分类状态码范围说明1xx100-199信息性状态码&#xff0c;表示请求已被接收&#xff0c;继续处理2xx200-299成功…

【工具篇】深度剖析 Veo2 工具:解锁 AI 视频创作新境界

在当下这个 AI 技术日新月异的时代,各种 AI 工具如雨后春笋般涌现,让人目不暇接。今天,我就来给大家好好说道说道谷歌旗下的 Veo2,这可是一款在 AI 视频创作领域相当有分量的工具。好多朋友都在问,Veo2 到底厉害在哪?好不好上手?能在哪些地方派上用场?别着急,今天我就…

slam学习笔记8---fastlio2运行效率高缘由

前言&#xff1a;lio里面&#xff0c;fastlio2的精度和速度表现很显眼。有必要总结一下运行效果高的缘由。参考各大家&#xff0c;从个人对fastlio2理解&#xff0c;汇总所得。 Fast-LIO2 运行速度快的主要原因可以归结为以下几个方面&#xff1a; &#x1f539; 1. 采用增量…

【C++高并发服务器WebServer】-13:多线程服务器开发

本文目录 一、多线程服务器开发二、TCP状态转换三、端口复用 一、多线程服务器开发 服务端代码如下。 #include <stdio.h> #include <arpa/inet.h> #include <unistd.h> #include <stdlib.h> #include <string.h> #include <pthread.h>s…

SpringCloud面试题----Nacos和Eureka的区别

功能特性 服务发现 Nacos&#xff1a;支持基于 DNS 和 RPC 的服务发现&#xff0c;提供了更为灵活的服务发现机制&#xff0c;能满足不同场景下的服务发现需求。Eureka&#xff1a;主要基于 HTTP 的 RESTful 接口进行服务发现&#xff0c;客户端通过向 Eureka Server 发送 HT…

在 Open WebUI+Ollama 上运行 DeepSeek-R1-70B 实现调用

在 Open WebUI Ollama 上运行 DeepSeek-R1-70B 实现调用 您可以使用 Open WebUI 结合 Ollama 来运行 DeepSeek-R1-70B 模型&#xff0c;并通过 Web 界面进行交互。以下是完整的部署步骤。 1. 安装 Ollama Ollama 是一个本地化的大模型管理工具&#xff0c;它可以在本地运行 …

免费地理位置信息查询接口

地理位置信息查询接口V1 1. 接口简介 本接口用于查询指定经纬度的地理位置信息&#xff0c;包括省、市、区、街道等详细信息。 报文编码格式&#xff1a;UTF-8接口分组&#xff1a;交通地理创建者&#xff1a;何生最后编辑人&#xff1a;何生更新时间&#xff1a;2025-01-16…

使用 Axios 进行高效的数据交互

一、前言 1. 项目背景与目标 Axios 的重要性: Axios 是一个基于 Promise 的 HTTP 客户端,用于浏览器和 Node.js,简化了与服务器的通信。Axios 提供了丰富的功能,如拦截器、并发请求管理、取消请求等。2. 环境搭建 开发工具准备: 推荐使用 VSCode 或 WebStorm。安装必要的…

「vue3-element-admin」告别 vite-plugin-svg-icons!用 @unocss/preset-icons 加载本地 SVG 图标

&#x1f680; 作者主页&#xff1a; 有来技术 &#x1f525; 开源项目&#xff1a; youlai-mall ︱vue3-element-admin︱youlai-boot︱vue-uniapp-template &#x1f33a; 仓库主页&#xff1a; GitCode︱ Gitee ︱ Github &#x1f496; 欢迎点赞 &#x1f44d; 收藏 ⭐评论 …

C#中深度解析BinaryFormatter序列化生成的二进制文件

C#中深度解析BinaryFormatter序列化生成的二进制文件 BinaryFormatter序列化时,对象必须有 可序列化特性[Serializable] 一.新建窗体测试程序BinaryDeepAnalysisDemo,将默认的Form1重命名为FormBinaryDeepAnalysis 二.新建测试类Test Test.cs源程序如下: using System; us…