Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $YECBGYFECGEAFWHA as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2

Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $BBWFDDBHHYHDXXAB as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2
动态调整元素宽度:基于窗口大小和另一元素宽度_创想鸟

动态调整元素宽度:基于窗口大小和另一元素宽度

动态调整元素宽度:基于窗口大小和另一元素宽度

动态调整元素宽度:基于窗口大小和另一元素宽度

本文档旨在指导开发者如何使用 JavaScript 在窗口大小变化时,动态地调整一个 HTML 元素的宽度,使其与另一个元素的宽度保持一致。当窗口宽度小于特定阈值时,目标元素的宽度将与参考元素的宽度同步,否则恢复默认宽度。本文提供详细的代码示例和注意事项,帮助开发者轻松实现此功能。

在 Web 开发中,经常需要根据屏幕尺寸动态调整元素的样式,以实现响应式布局。本教程将介绍如何使用 JavaScript 监听 resize 事件,并根据窗口宽度动态改变元素的宽度,使其与另一个元素的宽度保持一致。

实现原理

核心思路是监听 window 对象的 resize 事件。当窗口大小发生改变时,获取参考元素的宽度,并将其应用到目标元素上。同时,需要判断窗口宽度是否小于预设的阈值,以决定是否执行宽度调整。

代码示例

以下是一个完整的示例,演示如何实现此功能:

动态调整元素宽度body, html {  width: 100%;  height: 100%;  margin: 0; /* 移除默认的 margin */}.box {  width: 80%;  height: 80%;  left: 10%;  top: 10%;  background: lime;  display: flex;  position: relative;  align-items: center;  justify-content: center;}.changing__width__element {  width: 50px;  height: 50px;  background: blue;  position: relative;}  
window.addEventListener('resize', () => { const boxElement = document.getElementsByClassName('box')[0].clientWidth; const changingElement = document.getElementsByClassName('changing__width__element')[0]; if (window.innerWidth { const boxElement = document.getElementsByClassName('box')[0].clientWidth; const changingElement = document.getElementsByClassName('changing__width__element')[0]; if (window.innerWidth < 520) { changingElement.style.width = `${boxElement}px`; } else { changingElement.style.width = "50px"; } });

代码解释

HTML 结构: 定义了两个 div 元素,.box 作为参考元素,.changing__width__element 作为需要动态调整宽度的目标元素。CSS 样式: 设置了 .box 和 .changing__width__element 的基本样式,包括宽度、高度、背景颜色等。JavaScript 代码:window.addEventListener(‘resize’, …): 监听窗口的 resize 事件,当窗口大小改变时触发回调函数。document.getElementsByClassName(‘box’)[0].clientWidth: 获取 .box 元素的宽度。document.getElementsByClassName(‘changing__width__element’)[0]: 获取 .changing__width__element 元素。window.innerWidth: 获取窗口的内部宽度(不包括滚动条)。if (window.innerWidth window.addEventListener(‘load’, …): 监听页面加载完成事件,在页面初次加载时也执行一次调整宽度的逻辑,确保初始状态正确。

注意事项

性能优化: 频繁的 resize 事件可能会导致性能问题。可以使用 debounce 或 throttle 技术来限制回调函数的执行频率。初始状态: 需要在页面加载时执行一次宽度调整的逻辑,以确保初始状态正确。可以使用 window.onload 或将代码放在 DOMContentLoaded 事件监听器中。CSS 方案: 虽然本教程使用 JavaScript 实现,但更推荐使用 CSS 的 Media Queries 来实现响应式布局,因为 CSS 方案性能更好,代码更简洁。

CSS Media Queries 方案

以下是使用 CSS Media Queries 实现相同功能的示例:

动态调整元素宽度 (CSS Media Queries)body, html {  width: 100%;  height: 100%;  margin: 0;}.box {  width: 80%;  height: 80%;  left: 10%;  top: 10%;  background: lime;  display: flex;  position: relative;  align-items: center;  justify-content: center;}.changing__width__element {  width: 50px;  height: 50px;  background: blue;  position: relative;}@media (max-width: 520px) {  .changing__width__element {    width: 80%; /* 宽度设置为 .box 元素的宽度,这里直接使用百分比,假设 .changing__width__element 在 .box 内部 */  }}  

在这个 CSS 示例中,当屏幕宽度小于或等于 520px 时,.changing__width__element 的宽度会被设置为 80%,即 .box 元素的宽度。 这种方式无需 JavaScript 代码,更加简洁高效。

总结

本教程介绍了如何使用 JavaScript 和 CSS Media Queries 实现动态调整元素宽度的功能。虽然 JavaScript 可以实现更灵活的控制,但 CSS Media Queries 在性能和代码简洁性方面更具优势。在实际开发中,应根据具体需求选择合适的方案。优先考虑使用 CSS Media Queries,只有在需要更复杂的逻辑时才考虑使用 JavaScript。

以上就是动态调整元素宽度:基于窗口大小和另一元素宽度的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1575358.html

赞 (0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
JavaScript 监听窗口大小变化动态调整元素宽度
上一篇 2025年12月22日 17:04:51
CSS实现动态溢出文本滚动动画教程
下一篇 2025年12月22日 17:05:07

相关推荐

  • REST API设计原则:理解无状态性与持久化数据管理

    REST API设计原则:理解无状态性与持久化数据管理REST API设计原则:理解无状态性与持久化数据管理REST API设计原则:理解无状态性与持久化数据管理REST API设计原则:理解无状态性与持久化数据管理

    在REST API设计中,跨不同API调用维护服务器端变量(如用户列表)的内存状态与REST的无状态原则相悖。RESTful服务应将每个请求视为独立的事务,不依赖服务器端会话状态。对于需要持久化的数据,应采用数据库、文件系统等外部存储机制,而非在内存中直接维护,以确保系统的可伸缩性、可靠性和一致性。…

    2026年9月28日 • 用户投稿
    100
  • sublime怎么在侧边栏中隐藏特定的文件类型_侧边栏文件过滤设置

    sublime怎么在侧边栏中隐藏特定的文件类型_侧边栏文件过滤设置sublime怎么在侧边栏中隐藏特定的文件类型_侧边栏文件过滤设置sublime怎么在侧边栏中隐藏特定的文件类型_侧边栏文件过滤设置sublime怎么在侧边栏中隐藏特定的文件类型_侧边栏文件过滤设置

    要隐藏Sublime Text侧边栏中的特定文件类型,需修改用户或项目设置中的”folder_exclude_patterns”和”file_exclude_patterns”数组。首先在全局设置中添加如”.git”、&#822…

    2026年9月28日 • 用户投稿
    000
  • 使用单个循环优化 Java 代码:替代多个循环的策略

    使用单个循环优化 Java 代码:替代多个循环的策略使用单个循环优化 Java 代码:替代多个循环的策略使用单个循环优化 Java 代码:替代多个循环的策略使用单个循环优化 Java 代码:替代多个循环的策略

    本文旨在帮助开发者优化 Java 代码,特别是当遇到需要多次遍历同一数据集以查找不同类型数据时。我们将探讨如何使用单个循环和标志变量来替代多个循环,从而提高代码的效率和可读性,并提供多种优化策略,包括使用布尔标志、数组和辅助类,以及性能考量。 在处理数据时,经常会遇到需要从同一数据集中提取不同类型的…

    2026年9月28日 • 用户投稿
    000
  • sublime怎么设置字体大小和样式_Sublime字体大小及样式配置方法

    sublime怎么设置字体大小和样式_Sublime字体大小及样式配置方法sublime怎么设置字体大小和样式_Sublime字体大小及样式配置方法sublime怎么设置字体大小和样式_Sublime字体大小及样式配置方法sublime怎么设置字体大小和样式_Sublime字体大小及样式配置方法

    调整Sublime Text字体大小和样式需修改用户设置文件,通过添加或修改font_size和font_face实现个性化配置,保存后实时生效。1. 打开Preferences -> Settings,编辑右侧用户设置;2. 添加”font_size”: 14、&#8…

    2026年9月28日 • 用户投稿
    100
  • Centos7.3环境下安装最新版的Python3.8.4

    Centos7.3环境下安装最新版的Python3.8.4Centos7.3环境下安装最新版的Python3.8.4Centos7.3环境下安装最新版的Python3.8.4Centos7.3环境下安装最新版的Python3.8.4

    在centos 7.3环境下安装最新版python 3.8.4的步骤如下: 首先,退出Python命令行的方法包括: 输入exit()并按回车键输入quit()并按回车键直接按Ctrl+Z 接下来,前往Python的官方网站下载Python包。 立即学习“Python免费学习笔记(深入)”; 每个版…

    2026年9月28日 • 用户投稿
    100
  • 虚拟机安装以及PCL的配置(1)

    虚拟机安装以及PCL的配置(1)虚拟机安装以及PCL的配置(1)虚拟机安装以及PCL的配置(1)虚拟机安装以及PCL的配置(1)

    在windows系统下安装虚拟机的步骤如下(这些步骤同样适用于在虚拟机中配置ubuntu系统或双系统配置pcl环境): (1) 下载VMware并进行安装(可以通过百度搜索找到多个可供下载的资源)。 (2) 安装步骤: 双击下载的安装文件,按照提示点击“下一步”,无需更改默认安装路径(当然你也可以选…

    2026年9月28日 • 用户投稿
    200
  • 电脑如何使用自带BitLocker工具为分区设置密码

    电脑如何使用自带BitLocker工具为分区设置密码电脑如何使用自带BitLocker工具为分区设置密码电脑如何使用自带BitLocker工具为分区设置密码电脑如何使用自带BitLocker工具为分区设置密码

    一般情况下,我们会在电脑中存储大量重要文件,为了确保数据安全,不少人会选择使用加密工具进行保护。其实,我们可以将这些敏感资料集中存放在一个独立的分区中,并利用windows系统自带的bitlocker功能对该分区进行加密,操作简单且安全性高。如果你也想掌握这项技能,不妨跟随以下步骤一起动手操作。 操…

    2026年9月28日 • 用户投稿
    600
  • Win7怎么添加桌面快捷方式?

    Win7怎么添加桌面快捷方式?Win7怎么添加桌面快捷方式?Win7怎么添加桌面快捷方式?Win7怎么添加桌面快捷方式?

    有时我们在使用电脑时,可能因为误操作而导致桌面快捷方式突然消失,只剩下桌面背景图,此时该如何找回这些快捷方式呢?如果你也遇到过这种情况,可以按照以下步骤逐步检查解决。 我相信很多用户都会将常用的软件设置成桌面快捷方式,这不仅便于快速启动所需应用,还不会占用太多系统资源。那么,这种便捷的桌面快捷方式是…

    2026年9月28日 • 用户投稿
    100
  • sublime怎么合并多行为一行_Sublime多行内容合并为单行操作

    sublime怎么合并多行为一行_Sublime多行内容合并为单行操作sublime怎么合并多行为一行_Sublime多行内容合并为单行操作sublime怎么合并多行为一行_Sublime多行内容合并为单行操作sublime怎么合并多行为一行_Sublime多行内容合并为单行操作

    答案:Sublime Text中合并多行可通过三种方法实现。1. 使用查找替换功能,结合正则表达式r?n匹配换行符,替换为指定分隔符;2. 手动选中多行后删除换行符并添加分隔符;3. 使用内置“Join Lines”命令,快捷键Ctrl+J(Windows/Linux)或Cmd+J(Mac),自动以…

    2026年9月28日 • 用户投稿
    100
  • Java中ArrayList引用传递陷阱:避免数据意外修改的策略

    Java中ArrayList引用传递陷阱:避免数据意外修改的策略Java中ArrayList引用传递陷阱:避免数据意外修改的策略Java中ArrayList引用传递陷阱:避免数据意外修改的策略Java中ArrayList引用传递陷阱:避免数据意外修改的策略

    本文探讨了Java中ArrayList作为引用类型在对象构造时可能导致的数据意外修改问题。当将同一个ArrayList实例传递给多个对象后,对该列表的后续操作(如清空或添加元素)会影响所有引用它的对象。核心解决方案是为每个需要独立数据副本的对象,实例化一个新的ArrayList,从而确保数据隔离和一…

    2026年9月28日 • 用户投稿
    000
  • Win7系统中任务管理器被锁定了怎么办

    Win7系统中任务管理器被锁定了怎么办Win7系统中任务管理器被锁定了怎么办Win7系统中任务管理器被锁定了怎么办Win7系统中任务管理器被锁定了怎么办

    在win7系统中,如果任务管理器被禁用无法使用怎么办?众所周知,当某些程序无响应或后台进程占用过高资源时,我们通常会通过任务管理器来强制结束进程。但如果任务管理器被锁定导致无法打开,就失去了这一便捷的管理手段。那么该如何解决这个问题呢?一起来看看具体操作步骤。 第一步:按下【Win + R】组合键打…

    2026年9月28日 • 用户投稿
    000
  • sublime怎么处理gbk编码的文件不乱码_Sublime正确打开GBK编码文件不乱码的设置

    sublime怎么处理gbk编码的文件不乱码_Sublime正确打开GBK编码文件不乱码的设置sublime怎么处理gbk编码的文件不乱码_Sublime正确打开GBK编码文件不乱码的设置sublime怎么处理gbk编码的文件不乱码_Sublime正确打开GBK编码文件不乱码的设置sublime怎么处理gbk编码的文件不乱码_Sublime正确打开GBK编码文件不乱码的设置

    安装ConvertToUTF8插件可解决Sublime Text打开GBK文件乱码问题,该插件能自动识别并转换编码,确保文件正确显示且保存时保留原编码,同时建议设置默认编码为UTF-8、备用编码为GBK,并通过项目配置或团队规范统一编码,避免后续乱码。 Sublime Text在处理GBK编码文件时…

    2026年9月28日 • 用户投稿
    100
  • Android动态复选框状态持久化:SharedPreferences实践指南

    Android动态复选框状态持久化:SharedPreferences实践指南Android动态复选框状态持久化:SharedPreferences实践指南Android动态复选框状态持久化:SharedPreferences实践指南Android动态复选框状态持久化:SharedPreferences实践指南

    本教程详细阐述了如何在Android应用中持久化动态创建的复选框状态。通过利用SharedPreferences这一轻量级数据存储机制,我们能够确保用户在勾选或取消勾选动态生成的复选框后,其状态即使在应用重启或Activity重建后也能得以保留。文章将提供具体的代码示例和实现步骤,帮助开发者构建更具…

    2026年9月28日 • 用户投稿
    000
  • 火狐浏览器怎么让字体显示得更大一些_火狐浏览器调整网页字体大小与缩放教程

    火狐浏览器怎么让字体显示得更大一些_火狐浏览器调整网页字体大小与缩放教程火狐浏览器怎么让字体显示得更大一些_火狐浏览器调整网页字体大小与缩放教程火狐浏览器怎么让字体显示得更大一些_火狐浏览器调整网页字体大小与缩放教程火狐浏览器怎么让字体显示得更大一些_火狐浏览器调整网页字体大小与缩放教程

    1、可通过快捷键Ctrl+加号放大页面或设置默认字体大小改善火狐浏览器文字过小问题;2、在设置中自定义字体大小、启用最小字体限制及使用变焦功能可提升阅读体验。 如果您在浏览网页时发现火狐浏览器中的文字过小,影响阅读体验,可以通过调整字体大小或页面缩放比例来改善显示效果。以下是具体操作方法: 本文运行…

    2026年9月28日 • 用户投稿
    000
  • Java集合引用管理:确保对象创建时内部列表状态独立的策略

    Java集合引用管理:确保对象创建时内部列表状态独立的策略Java集合引用管理:确保对象创建时内部列表状态独立的策略Java集合引用管理:确保对象创建时内部列表状态独立的策略Java集合引用管理:确保对象创建时内部列表状态独立的策略

    本教程探讨Java中将集合作为参数传递给构造函数时,如何避免因引用共享导致的内部数据意外更改问题。当多个对象共享同一个可变集合实例,并在外部修改该集合时,所有引用该集合的对象都会受影响。文章将详细介绍通过创建新集合实例或进行防御性复制两种有效策略,确保每个对象拥有独立且稳定的内部数据状态。 问题背景…

    2026年9月28日 • 用户投稿
    100
  • 教你这几招解决电脑的应用程序突然崩溃

    教你这几招解决电脑的应用程序突然崩溃教你这几招解决电脑的应用程序突然崩溃教你这几招解决电脑的应用程序突然崩溃教你这几招解决电脑的应用程序突然崩溃

    我们每天在使用电脑的过程中,几乎都会频繁启动各种应用程序。然而,有时应用在打开时会突然报错或直接崩溃,这种情况常常让人不知所措,难以判断问题所在,很多人只能选择卸载重装。为此,本文将为大家介绍几种有效应对电脑应用程序意外崩溃的方法。 第一步,建议先尝试重新安装出问题的应用程序。如果问题依然存在,可以…

    2026年9月28日 • 用户投稿
    000
  • 分享win7关闭待机密码的方法

    分享win7关闭待机密码的方法分享win7关闭待机密码的方法分享win7关闭待机密码的方法分享win7关闭待机密码的方法

    一键重装win7后,为了防止电脑重要资料泄露通常都会设置待机密码。但是每次都需要输入密码还是很麻烦的。那么,要如何关闭win7待机密码呢?此文小编就为大家分享win7关闭待机密码的方法。 1、首先可以点击“开始”图标,直接选择控制面板。 2、接着把查看方式改为小图标,直接点击“电源”选项。 3、然后…

    2026年9月28日 • 用户投稿
    000
  • Android RecyclerView优化:通过DiffUtil实现增量更新

    Android RecyclerView优化:通过DiffUtil实现增量更新Android RecyclerView优化:通过DiffUtil实现增量更新Android RecyclerView优化:通过DiffUtil实现增量更新Android RecyclerView优化:通过DiffUtil实现增量更新

    本教程旨在解决RecyclerView在数据更新时(尤其是新增数据)出现的全量刷新和闪烁问题。通过详细介绍Android DiffUtil机制,我们将学习如何高效地进行列表项的增量更新,从而提升用户体验,避免不必要的UI重绘,特别适用于实时聊天等频繁数据变动的场景。 在开发Android应用时,Re…

    2026年9月28日 • 用户投稿
    100
  • Win7资源管理器总是提示已停止工作的解决方法

    Win7资源管理器总是提示已停止工作的解决方法Win7资源管理器总是提示已停止工作的解决方法Win7资源管理器总是提示已停止工作的解决方法Win7资源管理器总是提示已停止工作的解决方法

    使用电脑过程中难免会遇到各种问题,近期有不少win7用户向小编反映,在操作电脑时频繁出现“windows资源管理器已停止工作”的提示。这种情况通常由误操作或某些恶意软件、病毒篡改系统设置所引起。那么应该如何有效解决这一故障呢?接下来,黑鲨小编将为大家详细介绍win7系统中资源管理器频繁崩溃的应对方法…

    2026年9月28日 • 用户投稿
    000
  • Win10 1909频繁闪屏刷新怎么处理

    Win10 1909频繁闪屏刷新怎么处理Win10 1909频繁闪屏刷新怎么处理Win10 1909频繁闪屏刷新怎么处理Win10 1909频繁闪屏刷新怎么处理

    在安装了windows 10 1909版本后,部分用户反馈显示器会出现频繁闪烁的问题,这不仅影响了使用体验,还可能对眼睛造成不适。针对这一现象,小编总结了一些解决办法,有同样困扰的朋友可以尝试一下。 如何解决Windows 10 1909的频繁闪烁问题 首先,打开电脑,按下快捷键“Win + R”打…

    2026年9月28日 • 用户投稿
    000

发表回复

登录后才能评论
关注微信