简体   繁体   English

我制作了一个手风琴,但我希望我的加号图标平滑过渡到减号,如何使用 jQuery 完成?

[英]I have made an accordion, but I want my plus icon to smoothly transition into a minus, how can this be done with jQuery?

So i have made an accordion that does what I want it to do (Granted it could do with more styling but I'm trying to practice jQuery), and i want to make the plus button turn into a minus with a smooth transition, like when you press the heading and the dropdown appears, the plus could rotate and turn into a minus or something like that.所以我做了一个手风琴,它可以做我想做的事情(当然它可以做更多的样式,但我正在尝试练习 jQuery),我想让加号按钮变成一个减号并平滑过渡,比如当您按下标题并出现下拉菜单时,加号可能会旋转并变成减号或类似的东西。

Any help would be greatly appreciated, thank you.任何帮助将不胜感激,谢谢。

Here is my code so far: https://jsfiddle.net/SpluntyGeese/9fdzej23/39/到目前为止,这是我的代码: https://jsfiddle.net/SpluntyGeese/9fdzej23/39/

<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<link rel="stylesheet"href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/smoothness/jquery-ui.css">
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Outfit:wght@200&display=swap" rel="stylesheet">
<script src="https://kit.fontawesome.com/704e1ec7c9.js" crossorigin="anonymous"></script>
</head>
<div class="accordion-area">
<div class="acc-trigger"><h2>Heading</h2> <i class="fas fa-plus"></i> <i class="fas fa-minus</i></div>
<div class="acc-para">This is some test text to ensure that this accordion actually works lol. 
</div>
</div>
<div class="accordion-area">
<div class="acc-trigger"><h2>Heading</h2> <i class="fas fa-plus"></i> <i class="fas fa-minus"></i></div>
<div class="acc-para">This is some test text to ensure that this accordion actually works lol. 
</div>
</div>
<div class="accordion-area">
<div class="acc-trigger"><h2>Heading</h2> <i class="fas fa-plus"></i> <i class="fas fa-minus"></i> 
</div>
<div class="acc-para">This is some test text to ensure that this accordion actually works lol. 
</div>
</div>
<div class="accordion-area">
<div class="acc-trigger"><h2>Heading</h2> <i class="fas fa-plus"></i> <i class="fas fa-minus"></i> 
</div>
<div class="acc-para">This is some test text to ensure that this accordion actually works lol. 
</div>
</div>

*{
font-family: 'Outfit', sans-serif;
}
.acc-trigger {
position: relative;
background: #c87800;
color: #fff;
padding: 10px 20px;
}
.acc-trigger i {
position: absolute;
right: 0;
width: 50px;
top: 50%;
transform: translateY(-50%);
}
.acc-para {
height: 0;
padding: 0;
transition: all 0.3s ease;
color: transparent;
background: #2f2f2f;
}
.acc-para.active {
padding: 20px;
height: auto;
color: #fff;
background: #2f2f2f;
border-left: 5px solid #222;
}
jQuery(document).ready(function($) {
  $(".acc-trigger").click(function() {
    $('.acc-para').removeClass('active');
  $(this).closest('.accordion-area').find('.acc-para').toggleClass('active');
  });
});

You can play with jquery fadeIn and fadeOut ...您可以使用 jquery fadeInfadeOut ...

 jQuery(document).ready(function($) { $(".acc-trigger").click(function() { $('.acc-para').removeClass('active'); $('.fa-minus').fadeOut(); $('.fa-plus').fadeIn(); $(this).find('.fa-minus').fadeIn(); $(this).find('.fa-plus').fadeOut(500); $(this).closest('.accordion-area').find('.acc-para').toggleClass('active'); }); });
 * { font-family: 'Outfit', sans-serif; }.acc-trigger { position: relative; background: #c87800; color: #fff; padding: 10px 20px; }.acc-trigger i { position: absolute; right: 0; width: 50px; top: 50%; transform: translateY(-50%); }.acc-para { height: 0; padding: 0; transition: all 0.3s ease; color: transparent; background: #2f2f2f; }.acc-para.active { padding: 20px; height: auto; color: #fff; background: #2f2f2f; border-left: 5px solid #222; }
 <head> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script> <link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/smoothness/jquery-ui.css"> <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script> <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link href="https://fonts.googleapis.com/css2?family=Outfit:wght@200&display=swap" rel="stylesheet"> <script src="https://kit.fontawesome.com/704e1ec7c9.js" crossorigin="anonymous"></script> </head> <div class="accordion-area"> <div class="acc-trigger"> <h2>Heading</h2> <i class="fas fa-plus"></i> <i class="fas fa-minus"></i></div> <div class="acc-para">This is some test text to ensure that this accordion actually works lol.</div> </div> <div class="accordion-area"> <div class="acc-trigger"> <h2>Heading</h2> <i class="fas fa-plus"></i> <i class="fas fa-minus"></i></div> <div class="acc-para">This is some test text to ensure that this accordion actually works lol.</div> </div> <div class="accordion-area"> <div class="acc-trigger"> <h2>Heading</h2> <i class="fas fa-plus"></i> <i class="fas fa-minus"></i></div> <div class="acc-para">This is some test text to ensure that this accordion actually works lol.</div> </div> <div class="accordion-area"> <div class="acc-trigger"> <h2>Heading</h2> <i class="fas fa-plus"></i> <i class="fas fa-minus"></i></div> <div class="acc-para">This is some test text to ensure that this accordion actually works lol.</div> </div>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM