html - Accordion 动画中箭头图标的效果

标签 html jquery css

我已经将 Accordion 效果添加到我的元素中。为此,我添加了一些必须与 Accordion 一起制作动画的箭头。问题是我已经设法让箭头旋转,但这种效果应该只影响我单击的元素,而不是所有使用 Accordion 效果的元素。有人能帮我解决一下吗?

非常感谢

// Accordion javascript function with Jquery

$(document).ready(function(){
    $('.accordion-title').click(function() {
        $(this).toggleClass('open');

        $accordion_content = $(this).next('.accordion-content');
        $('.accordion-content').not($accordion_content).slideUp();
        $('.accordion-content').not($accordion_content).prev('.accordion-title').removeClass('open');
        $accordion_content.stop(true, true).slideToggle(400)

        $('.accordion-title i').toggleClass('rotate');
        


    });
});
.accordion-title {
  display: flex;
  align-items: center;
  cursor: pointer;

  .fas {
    font-size: 2rem;
    margin-right: 0.5rem;
  }
}


.rotate {
  -webkit-transform: rotate(90deg);
  -ms-transform: rotate(90deg);
  transform: rotate(90deg);
  -webkit-transition: .3s;
  -o-transition: .3s;
  transition: .3s;
}



.accordion-content {
  display: none;
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>



    <div class="container">
        <div class="accordion-title">
            <i class="fas fa-chevron-right"></i>
            <h3 class="title is-3 has-white-color"> TEST 1 </h3>
        </div>
        <div class="accordion-content" style="display: none;"><p> test 1 </p>
        </div>
        <div class="accordion-title"><i class="fas fa-chevron-right"></i>
            <h3 class="title is-3 has-white-color"> TEST 2 </h3></div>
        <div class="accordion-content"><p> test 2 </p>
        </div>
    </div>

最佳答案

您可以通过类 accordion-title 和状态类 open 来管理图标旋转效果

// Accordion javascript function with Jquery

$(document).ready(function(){
    $('.accordion-title').click(function() {
        $(this).toggleClass('open');

        $accordion_content = $(this).next('.accordion-content');
        $('.accordion-content').not($accordion_content).slideUp();
        $('.accordion-content').not($accordion_content).prev('.accordion-title').removeClass('open');
        $accordion_content.stop(true, true).slideToggle(400)

        // Remove this handle
        //$('.accordion-title i').toggleClass('rotate');
    });
});
.accordion-title {
  display: flex;
  align-items: center;
  cursor: pointer;

  .fas {
    font-size: 2rem;
    margin-right: 0.5rem;
  }
}
.accordion-title i {
  -webkit-transition: .3s;
  -o-transition: .3s;
  transition: .3s;
}

.accordion-title.open i {
  -webkit-transform: rotate(90deg);
  -ms-transform: rotate(90deg);
  transform: rotate(90deg);
}



.accordion-content {
  display: none;
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>



    <div class="container">
        <div class="accordion-title">
            <i class="fas fa-chevron-right"></i>
            <h3 class="title is-3 has-white-color"> TEST 1 </h3>
        </div>
        <div class="accordion-content" style="display: none;"><p> test 1 </p>
        </div>
        <div class="accordion-title"><i class="fas fa-chevron-right"></i>
            <h3 class="title is-3 has-white-color"> TEST 2 </h3></div>
        <div class="accordion-content"><p> test 2 </p>
        </div>
    </div>

关于html - Accordion 动画中箭头图标的效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66578818/

相关文章:

javascript - 带有 Bootstrap 的 jquery 的脚本顺序

javascript - 跨浏览器高度函数——jquery

html - 在 Rails 4 应用程序中为一页使用背景图片?

javascript - 尝试使用 jquery 从本地目录加载图像

html - Bootstrap 网格 如何使我的列折叠在一起?

javascript - jQuery:append() 没有将任何元素插入到选择器中

php - 使用博客文章作为缩略图库

css - 旋转 css3 错误

javascript - 在移动设备上使用 skrollr 时网站无法完全滚动

javascript - .each(function () 不适用于浮点值