前端基础(四十二):非固定高度的容器实现折叠面板效果

效果展示

在这里插入图片描述

源码

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><style>p {margin: 0;}.card {width: 300px;box-shadow: 0 0 0 1px red;.card-header {height: 32px;padding: 0 16px;display: flex;justify-content: space-between;align-items: center;box-shadow: 0 0 0 1px red;}.card-content {max-height: 0;transition: max-height 0.5s ease;overflow: hidden;article {padding: 10px 16px;}}}
</style><body><div class="card"><header class="card-header"><span>展开/收缩</span><button id="toggle-button">&gt;</button></header><main id="content" class="card-content"><article id="article"></article></main></div><script>const content = document.querySelector('#content');// 模拟动态内容加载const article = document.querySelector('#article');setInterval(() => {article.appendChild(document.createElement('p')).innerText = '动态添加的内容';}, 1000);// 点击按钮切换展开/收缩const button = document.querySelector('#toggle-button');button.addEventListener('click', () => {const isExpanded = content.style.maxHeight;if (isExpanded) {content.style.maxHeight = null; // 收缩} else {content.style.maxHeight = content.scrollHeight + "px";}});// 监测内容变化(例如,添加/删除节点)const observer = new MutationObserver(() => {if (content.style.maxHeight) {content.style.maxHeight = content.scrollHeight + "px"; // 更新高度}});// 配置观察器以监测内容变化observer.observe(content, {childList: true,subtree: true,characterData: true});</script>
</body></html>

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

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

相关文章

发票、收据合并 PDF 小程序,报销上传 3 秒搞定

每到报销、报税、财务整理时&#xff0c;手里是不是总有一堆格式不一的票据&#xff1a; 聊天记录里的电子发票邮件附件中的 PDF 发票手机相册里的报销收据甚至还有零散的纸质票据扫描件 要上传或交给财务前&#xff0c;还得一个个整理、转换、排版&#xff0c;既耗时又容易出…

GitHub每日最火火火项目(9.4)

1. bytebot-ai / bytebot 项目名称&#xff1a;bytebot项目介绍&#xff1a;基于 TypeScript 开发&#xff0c;是一款自托管的 AI 桌面智能体&#xff0c;能通过自然语言命令自动化执行计算机任务&#xff0c;运行在容器化的 Linux 桌面环境中。它借助自然语言处理和 AI 技术&a…

MMORPG 游戏战斗系统架构

&#x1f30c; MMORPG 游戏战斗系统架构 引用&#xff1a; 游戏服务器同步技术解析&#xff08;C&#xff09;MMORPG移动同步与反外挂 虽然我已离开游戏行业&#xff0c;转而与几位成功的商人共同创业&#xff0c;投身于商用机器人领域&#xff0c;但坦诚地说&#xff0c;游戏…

【数学建模学习笔记】启发式算法:蒙特卡洛算法

蒙特卡洛模拟入门笔记&#xff1a;从原理到代码实践一、什么是蒙特卡洛模拟&#xff1f;蒙特卡洛模拟是一种通过大量随机实验来解决复杂问题的方法。简单说&#xff0c;就是用电脑模拟成千上万次随机事件&#xff0c;然后统计结果&#xff0c;以此估算一个问题的答案。举个生活…

20250904的学习笔记

一、封包与拆包1. 封包&#xff08;Packet Encapsulation&#xff09;封包 是指在发送数据时&#xff0c;将数据从高层协议封装到低层协议的过程。每经过一层协议&#xff0c;数据都会被加上相应的协议头&#xff08;有时也会加上协议尾&#xff09;&#xff0c;形成一个新的数…

STM32F4 + RT-Thread 实战指南:TIM10 硬件定时器驱动开发与 1 秒定时功能实现

目录前言一、STM32定时器10是个什么定时器&#xff1f;二、工程创建、环境配置三、程序代码四、运行前言 在rtthread中&#xff0c;STM32F4的定时器10有些驱动并不完整&#xff0c;对比与其它定时器在使用时需要手动的添加一些代码&#xff0c;我在使用上拆踩了一些坑&#xf…

echarts图库

环形图// 指定图表的配置项和数据this.option {// tooltip: {// trigger: item// },color: [#FFB32F, #FF5757, #57D5FF, #2FA8FF, #95FFF1], // 扇形区域以及列表颜色legend: {orient:vertical,//文字横向排itemGap:20,left: left,textStyle:{color: #F3F9FF,// fontSi…

进程(Process)全面概述

进程&#xff08;Process&#xff09;全面概述 本文档扩展了进程的定义、属性、生命周期、管理机制及示例&#xff0c;涵盖 task_struct 结构、进程链表、状态与优先级、fork 函数及其写时复制示例。 一、进程基本概念 进程&#xff1a;系统进行资源分配和调度的基本单位&#…

Java并发编程:sleep()与wait()核心区别详解

今天完成了实验室纳新网站的工作&#xff0c;大体功能都已经完善&#xff0c;也和前端测试过了&#xff0c;费了点时间&#xff0c;而且今天大部分时间在看langchain4j的东西&#xff0c;就简单复习一下八股&#xff0c;等会再复习一下算法题吧在Java并发编程中&#xff0c;sle…

AR眼镜在智能制造的应用方向和场景用例|阿法龙XR云平台

AR巡检在制造业的应用已形成覆盖设备维护、质量检测、安全监控和远程协作四大类别的成熟场景&#xff0c;不同制造领域的实践各具特色&#xff0c;为行业提供了宝贵参考。在汽车制造领域&#xff0c;AR 巡检主要应用于生产线设备维护和焊接质量检测。在汽车厂总装车间部署 AR 系…

【Linux系统】线程同步

在上一章节中&#xff0c;我们使用互斥量之后&#xff0c;确实解决了数据竞争问题&#xff0c;但出现了新的问题&#xff1a;只有一个线程&#xff08;thread 1&#xff09;在处理所有售票任务。这展示了互斥量的一个局限性&#xff1a;它确保了线程安全&#xff0c;但不保证公…

代码随想录训练营第三十一天|LeetCode56.合并区间、LeetCode738.单调递增的数字

56.合并区间 思路&#xff1a;先让二维数组进行排序&#xff1b; 遍历数组&#xff0c;定义一个min表示重合区间的左边界&#xff0c;max表示重合区间的右边界&#xff1b; 如果当前区间左边大于max&#xff0c;就证明重合区间断了&#xff0c;就要对它进行加入ArrayList&am…

【Unity项目经验分享】实现左右分屏裸眼3D程序

1、实现原理左右分屏原理&#xff0c;左右屏内容左右方向存在些许偏差。通过左右相机&#xff0c;然后左侧相机向左侧偏移一点3cm&#xff0c;右侧相机向右侧屏偏移一定3cm&#xff0c;然后将左右相机渲染内容通过RenderTexture渲染到Canvas上面的左右RawImage上面。2、实现具体…

设计软件启动失败?“找不到vcruntime140.dll,无法继续执行代码” 场景化解决方案来了

打游戏时&#xff0c;刚加载到登录界面就因 “找不到 vcruntime140.dll, 无法继续执行代码” 闪退&#xff1b;写代码时&#xff0c;编译工具突然报错中断工作&#xff1b;做设计时&#xff0c;PS、AE 启动失败弹出相同提示 —— 不同场景下的 vcruntime140.dll 错误&#xff0…

基于Echarts+HTML5可视化数据大屏展示-茶叶种植大数据溯源平台

效果展示&#xff1a;代码结构&#xff1a;主要代码实现 index.html布局 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta n…

PLOS One图片处理要求及处理办法

PLOS One图片处理&#xff1a; 要求&#xff1a;Please remove your figures from within your manuscript file, leaving only the individual TIFF/EPS image files. These will be automatically included in the reviewer’s PDF. 请从稿件文件中移除所有图表&#xff0c;…

AutoLayout与Masonry:简化iOS布局

Auto Layout 与 Masonry苹果提供的自动布局&#xff08;Auto Layout&#xff09;能够对视图进行灵活有效的布局。但是&#xff0c;使用原生的自动布局相关的语法创建约束的过程是非常冗长的&#xff0c;可读性也比较差。Masonry 的目标其实就是 为了解决原生自动布局语法冗长的…

从设计到落地:校园图书馆系统的面向对象实现全流程

很多小白学面向对象时总困惑&#xff1a;“类图、用例图我会画&#xff0c;但怎么把这些设计变成能跑的代码&#xff1f;” 这篇文章就用 “校园图书馆管理系统” 当例子&#xff0c;从需求分析→设计方案→代码实现→测试验证&#xff0c;带你走通 “设计→实现” 的完整链路&…

[鸿蒙心迹]带新人学鸿蒙的悲欢离合

2023年底&#xff0c;我和陆神&#xff0c;威哥&#xff0c;老罗一起去深圳参加了鸿蒙师资培训正式开启了鸿蒙之旅&#xff0c;当时和陆神拍的合照但是我把陆神打码了 学完以后就考取了鸿蒙的高级认证 看到没有时间是2023年11月 马上都要到期了。 想一想时间过得真快&#xff…

MindShow AI:AI思维导图生成工具高效解决思路混乱难题,快速搭建学习与工作大纲

你有没有过这种时候&#xff1f;想整理一份学习大纲或者项目方案&#xff0c;脑子裡一堆想法却散得像乱麻 —— 比如要做个 “数据分析入门规划”&#xff0c;明明知道要学 Excel、SQL、Python&#xff0c;可怎么分阶段、每个阶段学哪些重点&#xff0c;对着空白文档半天列不出…