前端基礎(四十二):非固定高度的容器實現折疊面板效果

效果展示

在這里插入圖片描述

源碼

<!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
英文地址,請注明出處:http://en.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;對著空白文檔半天列不出…