首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我做了一个手风琴,但是我想让我的加号图标平滑地转换成减号图标,怎么用jQuery实现呢?

要实现手风琴效果,并且在展开时将加号图标平滑转换为减号图标,你可以使用jQuery来操作DOM元素的类和样式。以下是一个简单的示例代码:

代码语言:txt
复制
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>手风琴效果</title>
<style>
  .accordion {
    width: 100%;
    max-width: 400px;
    margin: 20px auto;
  }
  .accordion-item {
    border: 1px solid #ccc;
    margin-bottom: 10px;
  }
  .accordion-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px;
    cursor: pointer;
  }
  .accordion-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease;
  }
  .accordion-content.active {
    max-height: 500px; /* 根据内容调整 */
  }
  .icon {
    transform: rotate(0deg);
    transition: transform 0.3s ease;
  }
  .icon.active {
    transform: rotate(45deg);
  }
</style>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>

<div class="accordion">
  <div class="accordion-item">
    <div class="accordion-header">
      <h3>标题1</h3>
      <span class="icon">+</span>
    </div>
    <div class="accordion-content">
      内容1...
    </div>
  </div>
  <div class="accordion-item">
    <div class="accordion-header">
      <h3>标题2</h3>
      <span class="icon">+</span>
    </div>
    <div class="accordion-content">
      内容2...
    </div>
  </div>
</div>

<script>
$(document).ready(function() {
  $('.accordion-header').click(function() {
    var content = $(this).next('.accordion-content');
    var icon = $(this).find('.icon');

    if (content.hasClass('active')) {
      content.removeClass('active');
      icon.removeClass('active');
    } else {
      $('.accordion-content').removeClass('active');
      $('.icon').removeClass('active');
      content.addClass('active');
      icon.addClass('active');
    }
  });
});
</script>

</body>
</html>

解释

  1. HTML结构
    • accordion:手风琴容器。
    • accordion-item:每个手风琴项。
    • accordion-header:手风琴项的标题部分,包含加号图标。
    • accordion-content:手风琴项的内容部分。
  • CSS样式
    • accordion-content:默认情况下,内容部分的最大高度为0,隐藏内容。
    • active类:当内容展开时,添加active类,设置最大高度,使内容显示。
    • icon:图标默认旋转角度为0度。
    • icon.active:当图标需要转换为减号时,添加active类,旋转45度。
  • jQuery脚本
    • 当点击accordion-header时,检查内容部分是否已经有active类。
    • 如果有,则移除active类,隐藏内容,并将图标旋转回0度。
    • 如果没有,则移除所有内容部分的active类,隐藏所有内容,然后将当前点击的内容部分添加active类,显示内容,并将图标旋转45度。

应用场景

这个手风琴效果适用于需要折叠和展开内容的页面,例如:

  • FAQ页面
  • 设置页面
  • 产品详情页

参考链接

通过这种方式,你可以实现一个简单且平滑的手风琴效果,并且在展开和折叠时动态改变图标。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

前端-10款web动画插件

2.基于Layui的可自定义添加删除数据的表格处理插件 如何在网页上编辑表格数据,这通过自己编写JS和CSS实现都是比较麻烦的,jQuery有很多插件可以完成这种功能,比如这款jQuery简易版的Excel...,当切换到某一个菜单项时,菜单项会沿着曲线移动到当前视窗,同时显示对应的小图标,更重要的时,菜单项的切换是循环的,因此使用起来也非常方便。...这次我们同样再分享一款基于HTML5 Canvas的爱心表白动画特效,从视觉上看,它也是一个爱心轮廓,但是不同的是这个爱心轮廓由许多跳动的小爱心组成,更加有一种3D立体的效果,程序员的你就拿去用吧。...10.CSS3深色背景的垂直手风琴菜单 手风琴菜单我们已经分享过很多了,特别是垂直手风琴菜单更为常见,比如这款jQuery手风琴样式的多级下拉菜单和这款CSS3带小图标的手风琴下拉菜单都非常不错。...这次要分享的也是一款基于CSS3的深色背景的垂直手风琴菜单,实现原理与之前的比较类似,但是菜单展示形式略有不同,这个手风琴菜单当展开时子菜单会有水平飞入的动画效果。 ?

5.9K50

WEB入门之十九 UI

、核心函数;jquery.ui.accordion.js是实现手风琴组件的js文件。...jQuery提供了超过150种的图标,请参考jQuery官方网站。 Ø collapsible:用来设置是否可以单独展开/闭合手风琴组件中的某个组,默认值是false。...3组,通过鼠标悬浮事件来展开组,并且标题的图标也进行了更换 9.1.1 Button Button即按钮,但是jQuery UI中的按钮丰富多样,包括类似于HTML中的按钮,以及复选按钮...图9.2.2 手风琴相册 3:可拖动的菜单 ​训练技能点​ Ø jQuery Draggable ​需求说明​ 在实训任务1的基础上,实现通过鼠标可以拖动工具栏,但是只能拖动到页面的上端或下端...图9.2.3 来信闪烁 ​实现思路​ 邮箱图标是一个图片,只需要使用effect函数实现该图片的闪烁效果即可。 ​

7310
  • 10 个不错的 CSS 小技巧

    我本打算为我的站点添加 tooltip 的功能,但是发现需要引入一个插件,这就引入了不必要的东西,让我的站点看起来臃肿。感谢的是,可以使用 attr() 来避免这种情况。...使用关键帧实现手风琴下拉效果 JavaScript 库,比如 jQuery, Cash 等,即使你想使用一个简单的缩放功能,你都要整个引入。幸运的是,很多 CSS 技巧能够避免这种引入。...侧边栏的 Hover 效果 有没有可以使用 CSS 就可以实现一个动态 Hover 效果的侧边栏呢?当然,这得多亏 transform 和 :hover 属性。...使用 ::before 添加按钮的图标 image.png 每当我需要链接到外部其他资源的时候,我都会使用自定义的按钮来实现。准确来说,是一个添加图标的按钮。...简单的谷歌搜索,你会发现很多 button generators ,但是我对可以随时使用的通用解决方案更感兴趣。 所以,为了实现这个目标,我为特定按钮创建了一个 :before 伪元素。

    1K10

    从 Eclipse 到 IDEA,金字塔到太空堡垒

    中间想偶尔尝试一下IDEA,因为遇到各种不适应,就退回来了。这次要换掉Eclipse是因为一个莫名的bug导致我项目编译卡死,反复出现好几次后,决定弃用他。...我为什么如此喜欢IDEA的窗口呢,是因为他可以层层叠叠如这样: ? img 也可以进入“专注”模式,清清爽爽。...怎么走出 Eclipse 的舒适区 简单看了一下IDEA的优点,不知道你是否有点心动呢?Eclipse如同一条旧毛毯,有感情但却不舒适。...pom.xml文件即可 如果你想一个项目一个窗口,那么还是可以选择“Project From Existing Sources” 如果你的项目用的是Spring Boot,那么打开启动类,点击右侧小图标...3.2 快捷键映射 要换一个IDE开发,最需要适应的莫过于快捷键的使用习惯,下面我对来个IDE常用的快捷键做了一个映射,供大家参考: 操作 Eclipse IDEA 删除一行 Ctrl+D Ctrl+Y

    74220

    “不可不学是编程,不可不用是git” | github篇

    -02- 开始你的github之旅 如果你想在github上搞事情,首先,你要建立一个仓库。在网页的右上角有一个加号,点击加号,新建一个仓库。...首先,将仓库的地址,复制下来,待用,然后在本地,准备好git的仓库。可以使用克隆或下载下面的复制到剪切板图标,复制这个地址。配置好本地的用户信息。...-07- 那么如果你想让别人参与你的项目呢? 用图说话似乎是我的习惯…… 进入设置(Setting),左边,选择合作者(Collaborators) ▼ 邀请合作者 ▼ 像这样 ?...接下来我们呢再试试,用另一个账号能不能直接推送到这里呢? ? 从本地推送成功,我们在来看github上如何呢? ? 到这里,本文的主要内容就结束了。 - 进入下一话题 - ▼ -01- 问答 1....答:因为演示的时候有时候会脑子抽筋,比如忘记提交就推送之类的…… 2. 问:为什么你的仓库名是一个减号? 答:本来我取了一个很好的中文名,但是git说了算。 3.

    85820

    都说Vue面试难,到底问什么问题了?

    那么,是新的方式还是新的思路呢?我这边就以大家苦恼的几个问题分享一下我的“新发现”: ?...01 开始重点倾向问源码 我相信最近去面试的人都会有这个体会,去年面试官只问我怎么用vue,今年开始问我vue响应式原理,以及vue各种相关库的源码? 结果回答得支支吾吾。...但是无论如何,这是个实实在在的趋势,现在大家都会用vue,企业自然想挑最好的人。怎么挑?源码就是试金石!毕竟会源码的人,水平都不会差。 如果你有跳槽的打算,一定抓紧学习源码内容!...简述一个框架的同时,说出他的设计来源、类似的框架,这样还害怕拿不下面试官? 02 注重你在项目中做出的实践 你在这个项目里面,都做了些什么事情?这个问题我相信大家都经历过,但是几乎没人答得完美。...然后这个项目有一套我和同事一起做的专门的组件库。在移动端,我们为了搭配app,也做了移动混合方案。像在首页,因为数据巨大,我们采用了一些优化方案。利用本地缓存数据,对小图标进行了base64转码。

    63620

    接口测试平台代码实现7:菜单的开发

    关于菜单,我们常见的有顶部的,也有左侧的。那么具体要怎么开发呢?...首先我们进入一个我平时比较喜欢的控件平台:jquery之家: http://www.htmleaf.com/ 进入后会发现,上面有各种分类。...最上面的i标签,是菜单文案前面的图标: 改成如下文案: 看看页面: 好了,接下来我们 可能觉得这个红色太扎眼了,想尝试改一下它的颜色。让我们继续分析这个颜色在哪里。...然后去新建一个case_list.html好让后台函数返回,这些小伙伴课后自己感兴趣的可以自己练习,我们课程后续也会一步一步的继续制作这个用例库模块的。...好了这里我们就介绍完了如何开发一个左侧菜单了,是不是很讨巧的办法,最上面的search...测试发现也很好用。我们之后其他各种控件元素都可以在jquery之家上下载,按照我教的方法去拆出来一点点使用。

    99730

    (小说版)【简历优化平台-2】四个部分初显现,上传按钮打头前

    我和她第二次相识,为什么这么说呢?因为如果有一个人跟你从小就认识,一起玩了很多很多年,突然有一天消失了。...但是你依然保留着那份对她“化成灰都认识的”熟悉的初心,重新接触后便可以说第二次相识。而让你想不到的是,她现在居然摇身一变,成为了一名测试工程师... 在上节课结尾,我们搞定了进入的方式。...,我这里已经下载过了,直接引入: 然后此时的页面还有点小问题: 就是这个图标的问题,目前是个默认,可以通过引入自己提前准备好的.ico图标文件,来改变: 效果如下:(没错,我直接复制之前vue项目的...可惜的是,bootstrap官方并未给出上传按钮的漂亮样式。如果想强行更改这种上传按钮的样式,需要的代价不会很小,但是考虑到该功能会面向c端全体粉丝,所以尽量做的好看一点。...选择文件后: 然后点击 上传选择的简历 按钮,即可实现触发。不过具体要怎么才能让后台真实的接收到这个简历文件呢?请听下节课分解!

    48230

    如何用Mockplus快速做一个手风琴菜单?

    手风琴菜单是一种比较常用的菜单形式,利用原型工具来做这种菜单通常要用到中继器。即使是功能强大的Axure,想实现该效果也比较麻烦。...在左侧的交互分类中选择“面板”组件,此处为了节省时间我在“面板”中添加一个列表。然后将带列表的面板复制两次。并将第二,第三个面板的名称改为“面板2”和“面板3” ?...这个交互的目的是让第一个面板在拉长时,第二个面板同时向下位移相同数量的像素。 ? 此时,我们需要在第一个面板上再添加一个交互,使第三个面板也向下位移同等数量的像素。方法同上。 ?...第三步:按照一,二步的方法,为面板2和面板3设置交互。 这样,一个简易的手风琴菜单就做好了。你还可以在菜单选项中添加图标等组件,将菜单设置成你想要的样子。...面板2: 链接到自己,调整的大小。 链接到面板3,位移。 面板3: 链接到自己,调整大小。 是不是很简单呢?一个面板组件,两个简易的交互,就能做出一个像样的手风琴菜单。

    1K40

    zblog博客怎么给导航加图标图文教程

    最近一直在忙新主题模板的制作,因为刚刚做了一个洗发水的微商代理,效果很不错,所以打算制作一个小网站,推广优化一下,所以没怎么更新博客文章,有朋友反应想给导航加上图标,类似我现在这样,我的主题教程有简单的说明...,但是小白还是不太会,今天抽空写个教程,手把手(这是重点)教你怎么给导航加上图标。...说的跑题了,,,emmmm说正题,怎么给导航添加图标。 ?...教程就这样结束了,我就说嘛,很简单,简单到我非得重新啰嗦一遍,小白可能还要问,那代码去哪里找呢?怎么找啊?...,你说问我,你导航上面哪个“hot”怎么弄的,我怎么没有?

    1.3K31

    源码阅读小技巧 | AndroidStudio 类型篇

    阅读源码的小技巧不单单是看底层源码,应用层的源码也依然适用,比如你接手了一个项目,也需要去阅读源码。 由于不同平台或者个人的快捷键不同,所以这里不以快捷键为主,而是让大家知道对应的菜单是什么。...., 在我的 AndroidStudio 里对应的快捷键是 Ctrl+N : ---- 1....大家也许注意到了,类名前有 加号 或者 减号。其中比如 TransitionRoute 左侧有加号,说明 install 方法在该类中进行了复写。...另外,类名前的 减号 表示该类没有复写父类的该方法,这样在研究 install 方法在源码中的作用时,带减号的类型就可以忽略了。 ---- 3....类型结构:Structure 类型结构在源码分析中是一个非常重要面板,它可以让你迅速查看一个类的信息,类的构造、成员、方法都能一目了然,从而对整体有个认知。

    37320

    手把手教你打造一个纯CSS图标库

    初看方案2的一堆代码可能会觉得非常难,但其实很多简单的图标都是非常容易实现的。 接下来就是妹子们最期待的茄果叔叔手把手教学时间啦。...呃,为什么要做成em单位呢? 我们在使用图标的时候,可能尺寸每次都不一样,但图标的尺寸都是有关联的,调整起来相当费劲。当然你可以会想到用zoom、scale来做缩放,但是这样的缩放线宽也会随之变化了。...再来看一个带变形的: 这个一看其实就能猜到是怎么画的,几何关系貌似也比较简单,但是要映射到css的规则里面却非常复杂。...图形学学的不好的话,那就比较痛苦了,如果不追求单标签的话,可以将每条边用一个标签表示,这样就很好处理了。 叔叔,我想装逼 怎么样?觉得上面这些都是小玩意?想装逼了?好,叔叔教你! 蒙娜丽莎?什么鬼?...我会告诉你这也可以用一个单标签纯CSS画出来的吗?

    82240

    除了“Vue全家桶”,如何打动面试官?

    那么,它应该是一个优秀的源码底层解析还是一个新的项目思路呢?看了很多份简历的我,在这里,以几个高频的问题分享一些前端面试总结: ?...01 开始重点倾向问源码 我相信最近去面试的人都会有这个体会,去年面试官只问我怎么用vue,今年开始问我vue响应式原理,以及vue各种相关库的源码? 结果回答得支支吾吾。...但是无论如何,这是个实实在在的趋势,现在大家都会用vue,企业自然想挑最好的人。怎么挑?源码就是试金石!毕竟会源码的人,水平都不会差。 如果你有跳槽的打算,一定抓紧学习源码内容!...简述一个框架的同时,说出他的设计来源、类似的框架,这样还害怕拿不下面试官? 02 注重你在项目中做出的实践 你在这个项目里面,都做了些什么事情?这个问题我相信大家都经历过,但是几乎没人答得完美。...然后这个项目有一套我和同事一起做的专门的组件库。在移动端,我们为了搭配app,也做了移动混合方案。像在首页,因为数据巨大,我们采用了一些优化方案。利用本地缓存数据,对小图标进行了base64转码。

    60530

    UI界面视觉平衡的终极指南

    现在可以理解为什么图标区域总是大于图标主体了——就是让非方形的图标看起来不小于方形图标。 ? 在这里给大家一个小技巧——检查视觉平衡最简单的方法就是进行模糊化处理。...按钮和文字不仅有垂直对齐,也有水平对齐的问题。 我想介绍的第一种方法适用于各种网页和APP的界面中,即文字的高度基于大写字母的最高高度。 ? 基本上,文字的上下距离按钮边缘的距离是相等的。...Cancel和OK用x高度对齐法就有点太高了。 ? 图标按钮的情况与文本按钮略有不同。我们把“发送”图案放在一个圆形按钮的背景上。你认为哪种图标在视觉上更平衡? ?...为让大家加深理解,我从三种常用的的几何字体——Futura、Circe和Geometria中选取了字母“o”。...可以发现右边的按钮有更平滑的圆角,而且视觉效果也更好。 APP 图标也是如此,用标准的圆角是不能达到完美效果的。在深入讨论这个话题之前,我们先来看看两个不同的圆形。 ?

    2.5K40

    手撸一个前端天气卡片

    其中win11小部件添加了浅阴影,可能是为了让小部件从亚克力背景中凸显出来。 于是乎,我也照猫画虎,设计了DW的晴天图标,并且用XD设计出了第一种卡片样式(现DW的medium卡片样式)。...我需要保证卡片中的所有元素都能有条不紊地展现出来,我原本想要固定每一种样式的卡片宽度,这样能够确保卡片的布局总是完美的,但是会使天气卡片的泛用性大打折扣,其他使用DW的人并不会专门为了一个小组件而修改自己的布局方案...但是自适应,又该怎么做呢?...最常用的自适应方法是写媒体查询,但是我不能使用媒体查询,其他开发者在哪儿插入卡片、怎么插入卡片、卡片的父级元素是什么状态我都无从得知,我不能仅通过屏幕尺寸判断出天气卡片目前的状态。...图表部分是使用svg实现的,为了让暗黑模式的样式操作能够便利,所以使用了svg而不是canvas。绘图直接用的浏览器原生js实现,只需要绘制一个折线图,chartjs显然有些大材小用,比较臃肿。

    1.7K50

    uni-app开发一个小视频应用(一)

    那么没有了默认导航栏,我们怎么进行tabBar页面的切换呢?我们可以通过组件设置不同的跳转方式,实现应用内各种页面之间的跳转。记住APP和微信小程序是不支持标签跳转的。...--暂时用加号代替,后面会替换成字体图标--> 图标字体非常简单,就是登录iconfont网站,然后创建一个图标项目,然后搜索自己需要的图标,比如加号、搜索、返回,将它们加入到项目中,然后点击下载即可,下载完成后解压,找到iconfont.css...--添加一个加号图标字体样式,注意是两个样式名哦--> 四 创建首页头部导航栏 首页头部导航栏,最左侧是一个搜索图标,中间是推荐和同城,右侧无内容。...,然后里面嵌入一个组件即可实现。

    3.9K71

    老板让我创建一百个微信群

    这里的老板是我凭空想象出来的,但是你有没有想过如何能快速省力的创建好 100 个微信群呢?今天就和我一起来看看如何使用 Python 来完成这件事情吧。...实现思路知道如何创建微信群(为了不打扰别人,我们创建一个只有自己的群)如何将上面的动作转换成为代码。...首先我们来看看怎么创建一个人的群在微信界面点击右上角的 + 图标选择发起群聊选择面对面建群输入一个四位密码我们默认从 0001~0100点击进入群聊点击右上角 ......appPackage:我这里用的是微信的包名appActivity:微信的启动界面noReset:我不希望将微信的记录清空,因此此处设置了 True如何查看微信的包名以及启动界面:手动启动微信放在最前面...好了今天的内容就是这些,感谢你的阅读,如果本文对你有所帮助,欢迎转发给你的朋友。我是 Tango,一个热爱分享各种技术的程序猿,我们下期见。

    28210

    Markdown笔记 | 一篇最详细的Markdown 教程 --> 收好

    1.5 分割线 你可以在一行中用三个以上的星号、减号、底线来建立一个分隔线,行内不能有其他东西。你也可以在星号或是减号中间插入空格。...注:可能很多人打错这个符号 ` ,这个符号是在tab的上面,切换成英文输入点击(tab上方、数字1左边)的键即可。 1.12.1 代码区块 代码区块使用 4 个空格或者一个制表符(Tab 键)。...接着一个方括号,里面放上图片的替代文字 接着一个普通括号,里面放上图片的网址,最后还可以用引号包住并加上选择性的 'title' 属性的文字。 使用实例: !...加号 - 减号 ....感叹号* 星号 _ 下划线 {} 花括号 [] 方括号 () 小括号 # 井字号 + 加号 - 减号 . 英文句点 !

    30.3K88

    (四) SpringBoot起飞之路-Web静态资源处理

    这是第四篇,关于如何处理第三方静态资源以及自己的静态资源的小结,其实如果仅仅想要知道将静态资源放在哪里,或者说怎么直接用,其实几句话就说完了,但是我在文中是循着源码或者官网/Github,诱导到这几个点...(CSS、JS等)怎么能行,按照以往 Spring 的开发来说,我们的 main 下会有一个 webapp文件夹,但是我们现在创建的 SpringBoot 项目却不然,这是因为 SpringBoot 对于静态资源的放置...(2) 第二种映射规则 A:规则分析 这些第三方的 web 库的问题给出了一种方式,但是说了半天,还没有说自己的页面怎么弄,如果想要使用自己的静态资源又该怎么办呢?...路径下的文件编译后会被放到 WEB-INF/classes 路径下,所以默认classpath 就是指这里 用maven构建一个项目的时候,resources 目录就是默认的 classpath C:...移除,同时也不再提供上述application.properties中的属性配置 所以想设置图标只需要将图标文件 favicon.ico 放在静态资源文件夹下或者自己配置映射就可以了 (四) 执行测试

    1K71
    领券