如何使用CSS实现一个带有动画效果的折叠面板(Accordion)?

news2025/1/22 17:00:13

聚沙成塔·每天进步一点点

  • ⭐ 专栏简介
  • ⭐ 带有动画效果的折叠面板(Accordion)
  • ⭐ 写在最后


⭐ 专栏简介

前端入门之旅:探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅

欢迎来到前端入门之旅!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发者,这里都将为你提供一个系统而又亲切的学习平台。在这个专栏中,我们将以问答形式每天更新,为大家呈现精选的前端知识点和常见问题解答。通过问答形式,我们希望能够更直接地回应读者们对于前端技术方面的疑问,并且帮助大家逐步建立起一个扎实的基础。无论是HTML、CSS、JavaScript还是各种常用框架和工具,我们将深入浅出地解释概念,并提供实际案例和练习来巩固所学内容。同时,我们也会分享一些实用技巧和最佳实践,帮助你更好地理解并运用前端开发中的各种技术。

在这里插入图片描述

不仅如此,我们还会定期推出一些项目实战教程,让你能够将所学知识应用到实际开发中。通过实际项目的练习,你将能够更好地理解前端开发的工作流程和方法论,并培养自己解决问题和独立开发的能力。我们相信,只有不断积累和实践,才能真正掌握前端开发技术。因此,请准备好迎接挑战,勇敢地踏上这段前端入门之旅!无论你是寻找职业转型、提升技能还是满足个人兴趣,我们都将全力以赴,为你提供最优质的学习资源和支持。让我们一起探索Web开发的奇妙世界吧!加入前端入门之旅,成为一名出色的前端开发者! 让我们启航前端之旅


⭐ 带有动画效果的折叠面板(Accordion)

折叠面板是一个常见的用户界面元素,通常用于显示可展开和折叠的内容。您可以使用CSS和JavaScript来创建带有动画效果的折叠面板。以下是一个示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="styles.css">
    <title>折叠面板</title>
</head>
<body>
    <div class="accordion">
        <div class="accordion-item">
            <button class="accordion-btn">折叠项 1</button>
            <div class="accordion-content">
                <p>这是折叠项 1 的内容。</p>
            </div>
        </div>
        <div class="accordion-item">
            <button class="accordion-btn">折叠项 2</button>
            <div class="accordion-content">
                <p>这是折叠项 2 的内容。</p>
            </div>
        </div>
        <div class="accordion-item">
            <button class="accordion-btn">折叠项 3</button>
            <div class="accordion-content">
                <p>这是折叠项 3 的内容。</p>
            </div>
        </div>
    </div>
    <script src="script.js"></script>
</body>
</html>
/* styles.css */
body {
    font-family: Arial, sans-serif;
    margin: 0;
    padding: 0;
    background-color: #f0f0f0;
}

.accordion {
    max-width: 400px;
    margin: 20px auto;
}

.accordion-item {
    border: 1px solid #ddd;
    margin-bottom: 5px;
    overflow: hidden;
    transition: max-height 0.3s ease-in-out;
}

.accordion-btn {
    background-color: #0077ff;
    color: white;
    padding: 10px;
    width: 100%;
    text-align: left;
    border: none;
    cursor: pointer;
}

.accordion-content {
    padding: 10px;
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease-in-out;
}
// script.js
const accordionItems = document.querySelectorAll('.accordion-item');

accordionItems.forEach((item) => {
    const button = item.querySelector('.accordion-btn');
    const content = item.querySelector('.accordion-content');

    button.addEventListener('click', () => {
        item.classList.toggle('active');

        if (item.classList.contains('active')) {
            content.style.maxHeight = content.scrollHeight + 'px';
        } else {
            content.style.maxHeight = '0';
        }
    });
});

在上述代码中,我们创建了一个折叠面板,包含三个折叠项。CSS用于样式化折叠面板,其中.accordion-contentmax-height属性在折叠和展开时进行过渡动画。JavaScript用于监听按钮的点击事件,以切换折叠项的状态,并根据状态来设置内容的最大高度,以实现折叠和展开的动画效果。

通过这种方式,用户可以点击按钮展开或折叠内容,伴随着平滑的动画效果。这只是一个简单的示例,您可以根据需要进一步自定义和扩展折叠面板。


⭐ 写在最后

本专栏适用读者比较广泛,适用于前端初学者;或者没有学过前端对前端有兴趣的伙伴,亦或者是后端同学想在面试过程中能够更好的展示自己拓展一些前端小知识点,所以如果你具备了前端的基础跟着本专栏学习,也是可以很大程度帮助你查漏补缺,由于博主本人是自己再做内容输出,如果文中出现有瑕疵的地方各位可以通过主页的左侧联系我,我们一起进步,与此同时也推荐大家几份专栏,有兴趣的伙伴可以订阅一下:除了下方的专栏外大家也可以到我的主页能看到其他的专栏;

前端小游戏(免费)这份专栏将带你进入一个充满创意和乐趣的世界,通过利用HTML、CSS和JavaScript的基础知识,我们将一起搭建各种有趣的页面小游戏。无论你是初学者还是有一些前端开发经验,这个专栏都适合你。我们会从最基础的知识开始,循序渐进地引导你掌握构建页面游戏所需的技能。通过实际案例和练习,你将学会如何运用HTML来构建页面结构,使用CSS来美化游戏界面,并利用JavaScript为游戏添加交互和动态效果。在这个专栏中,我们将涵盖各种类型的小游戏,包括迷宫游戏、打砖块、贪吃蛇、扫雷、计算器、飞机大战、井字游戏、拼图、迷宫等等。每个项目都会以简洁明了的步骤指导你完成搭建过程,并提供详细解释和代码示例。同时,我们也会分享一些优化技巧和最佳实践,帮助你提升页面性能和用户体验。无论你是想寻找一个有趣的项目来锻炼自己的前端技能,还是对页面游戏开发感兴趣,前端小游戏专栏都会成为你的最佳选择。点击订阅前端小游戏专栏

在这里插入图片描述

Vue3通透教程【从零到一】(付费) 欢迎来到Vue3通透教程!这个专栏旨在为大家提供全面的Vue3相关技术知识。如果你有一些Vue2经验,这个专栏都能帮助你掌握Vue3的核心概念和使用方法。我们将从零开始,循序渐进地引导你构建一个完整的Vue应用程序。通过实际案例和练习,你将学会如何使用Vue3的模板语法、组件化开发、状态管理、路由等功能。我们还会介绍一些高级特性,如Composition API和Teleport等,帮助你更好地理解和应用Vue3的新特性。在这个专栏中,我们将以简洁明了的步骤指导你完成每个项目,并提供详细解释和示例代码。同时,我们也会分享一些Vue3开发中常见的问题和解决方案,帮助你克服困难并提升开发效率。无论你是想深入学习Vue3或者需要一个全面的指南来构建前端项目,Vue3通透教程专栏都会成为你不可或缺的资源。点击订阅Vue3通透教程【从零到一】专栏

在这里插入图片描述

TypeScript入门指南(免费) 是一个旨在帮助大家快速入门并掌握TypeScript相关技术的专栏。通过简洁明了的语言和丰富的示例代码,我们将深入讲解TypeScript的基本概念、语法和特性。无论您是初学者还是有一定经验的开发者,都能在这里找到适合自己的学习路径。从类型注解、接口、类等核心特性到模块化开发、工具配置以及与常见前端框架的集成,我们将全面覆盖各个方面。通过阅读本专栏,您将能够提升JavaScript代码的可靠性和可维护性,并为自己的项目提供更好的代码质量和开发效率。让我们一起踏上这个精彩而富有挑战性的TypeScript之旅吧!点击订阅TypeScript入门指南专栏

在这里插入图片描述

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

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

相关文章

FPGA时序分析与约束(4)——时序分析,时序约束,时序收敛

一、前言 在之前的文章中&#xff0c;我们介绍了组合电路的时序和时序电路的时序问题&#xff0c;之后又把理想化的时钟变成了实际的时钟考虑了进来&#xff0c;在阅读本文之前&#xff0c;强烈推荐优先阅读本系列之前的文章&#xff0c;毕竟这是我们继续学习的基础&#xff0c…

Elasticsearch 8.X 可以按照数组下标取数据吗?

1、线上环境问题 老师、同学们&#xff0c;有人遇到过这个问题么&#xff0c;索引中有一个 integer 数组字段&#xff0c;然后通过脚本获取数组下标为1的值作为运行时字段&#xff0c;发现返回的值是乱的&#xff0c;并不是下标为1的值&#xff0c; 具体如下: DELETE my_index …

36岁男子自称被裁,曾是前500强公司市场总监,最后接受做外买

(点击即可收听) 最近有一个新闻,上了头条,36岁男子自称被裁,是前500强公司市场总监,一年没找到工作,以前不信年龄是道坎 以为自己的经验和履历,能在找到一份相匹配的工作不成问题 但是现实却很残酷,一年后,仍然没有找到对口的工作,即使降低了薪资标准,可依旧找不到 都说疫情前难…

逻辑回归Logistic

回归 概念 假设现在有一些数据点&#xff0c;我们用一条直线对这些点进行拟合&#xff08;这条直线称为最佳拟合直线&#xff09;&#xff0c;这个拟合的过程就叫做回归。进而可以得到对这些点的拟合直线方程。 最后结果用sigmoid函数输出 因此&#xff0c;为了实现 Logisti…

3D视觉测量:形位公差 面对面垂直度(附源码)

文章目录 0. 测试效果1. 基本内容2. 实现方法2. 代码实现3. 参考文章目录:3D视觉测量目录微信:dhlddxB站: Non-Stop_0. 测试效果 1. 基本内容 垂直度用于描述被测要素相对基准(面/轴)的垂直(90)程度。是一个表面或轴线与一个基准面(通常是垂直于图纸纸面的一个面)之间的…

Leetcode 16.07 最大数值

编写一个方法&#xff0c;找出两个数字a和b中最大的那一个。不得使用if-else或其他比较运算符。 示例&#xff1a; 输入&#xff1a; a 1, b 2 输出&#xff1a; 2 我的答案&#xff1a; 为了找出两个数中的较大者&#xff0c;而不使用比较或条件语句&#xff0c;我们可以…

Linux常用命令——cupsdisable命令

在线Linux命令查询工具 cupsdisable 停止指定的打印机 补充说明 cupsdisable命令用于停止指定的打印机。 语法 cupsdisable(选项)(参数)选项 -E&#xff1a;当连接到服务器时强制使用加密&#xff1b; -U&#xff1a;指定连接服务器时使用的用户名&#xff1b; -u&#…

【无公网IP内网穿透】异地远程访问本地SQL Server数据库

目录 1.前言 2.本地安装和设置SQL Server 2.1 SQL Server下载 2.2 SQL Server本地连接测试 2.3 Cpolar内网穿透的下载和安装 2.3 Cpolar内网穿透的注册 3.本地网页发布 3.1 Cpolar云端设置 3.2 Cpolar本地设置 4.公网访问测试 5.结语 1.前言 数据库的重要性相信大家…

jdk-8u371-linux-x64.tar.gz jdk-8u371-windows-x64.exe 【jdk-8u371】 全平台下载

jdk-8u371 全平台下载 jdk-8u371-windows-x64.exejdk-8u371-linux-x64.rpmjdk-8u371-linux-x64.tar.gzjdk-8u371-macosx-x64.dmgjdk-8u371-linux-aarch64.tar.gz 下载地址 迅雷云盘 链接&#xff1a;https://pan.xunlei.com/s/VNdLL3FtCnh45nIBHulh_MDjA1?pwdw4s6 百度…

uni-app之android离线打包

一 AndroidStudio创建项目 1.1&#xff0c;上一节演示了uni-app云打包&#xff0c;下面演示怎样androidStudio离线打包。在AndroidStudio里面新建空项目 1.2&#xff0c;下载uni-app离线SDK&#xff0c;离线SDK主要用于App本地离线打包及扩展原生能力&#xff0c;SDK下载链接h…

2023开学礼新疆理工学院图书馆藏八一新书《乡村振兴战略下传统村落文化旅游设计》许少辉新财经理工

2023开学礼新疆理工学院图书馆藏八一新书《乡村振兴战略下传统村落文化旅游设计》许少辉新财经理工

GraalVM Community Edition 22.3.3

https://github.com/graalvm/graalvm-ce-builds/releases/ 按需下载 https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.3/graalvm-ce-java11-windows-amd64-22.3.3.ziphttps://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.3/nat…

山西电力市场日前价格预测【2023-09-03】

日前价格预测 预测明日&#xff08;2023-09-03&#xff09;山西电力市场全天平均日前电价为316.78元/MWh。其中&#xff0c;最高日前电价为405.32元/MWh&#xff0c;预计出现在19: 15。最低日前电价为249.46元/MWh&#xff0c;预计出现在12: 15。 价差方向预测 1&#xff1a; 实…

公司文件数据防泄密软件——「天锐绿盾透明加密防泄密系统」

天锐绿盾透明加密防泄密系统是一款利用驱动层透明加密技术实现电子文件安全加密的防护产品。该系统集成了密码学、访问控制和审计跟踪等技术手段&#xff0c;对企事业单位电子文件的存储、访问、传播和处理过程进行全方位防护&#xff0c;从源头上保障数据安全和使用安全。 PC访…

springboot web开发登录拦截器

在SpringBoot中我们可以使用HandlerInterceptorAdapter这个适配器来实现自己的拦截器。这样就可以拦截所有的请求并做相应的处理。 应用场景 日志记录&#xff0c;可以记录请求信息的日志&#xff0c;以便进行信息监控、信息统计等。权限检查&#xff1a;如登陆检测&#xff…

.NET之后,再无大创新

回想起来&#xff0c;2001年发布的.NET已经是距离最近的一次软件开发技术的整体创新了&#xff0c;后续的新技术就没有在各个端都这么成功的了。.NET是Windows平台下软件开发技术的巨大变革。在此之前&#xff0c;有VB、C&#xff08;MFC&#xff09;、JSP&#xff0c;在此之后…

cms系统稳定性压力测试出现TPS抖动和毛刺的性能bug【杭州多测师_王sir】

一、并发线程数100&#xff0c;分10个阶梯&#xff0c;60秒加载时间&#xff0c;运行1小时进行压测&#xff0c;到10分钟就出现如下 二、通过jstat -gcutil 16689 1000进行监控

go-zero jwt 鉴权快速实战

前面我们分享了 go-zero 的快速实战以及日志组件的剖析&#xff0c;本次我们来实战使用 go-zero jwt 鉴权 本次文章主要是分享关于 go-zero 中 jwt 的使用方式&#xff0c;会以一个 demo 的方式来进行实战&#xff0c;对于使用 goctl 工具以及安装细节就不在赘述&#xff0c;有…

计算机图形软件(三)6-5 一个完整的OpenGL程序、OpenGL的出错处理

一个完整的OpenGL程序 给出构成一个完整程序的所有部分之前还是有一些任务需要完成。对于显示窗口&#xff0c;我们可以选择背景颜色。我们需要组织一个过程来包含创建显示图形所必需的OpenGL 函数。 要像图3.2 那样使用 RCB 颜色值将显示窗口的背景颜色设定为白色可以使用 Ope…

报错处理:Disk space full

报错环境&#xff1a; Linux 具体报错&#xff1a; No space left on device&#xff0c;磁盘空间已满 排错思路&#xff1a; 当磁盘空间耗尽时&#xff0c;会出现磁盘空间已满的错误。这可能是由于磁盘上的文件过多或者某个文件系统占用了过多磁盘空间。 解决方法&#xff1a;…