【问题标题】:Accordion menu with rotating arrows带有旋转箭头的手风琴菜单
【发布时间】:2016-07-25 22:47:08
【问题描述】:

我创建了一个简单的手风琴,点击时带有旋转箭头。它工作正常,但有一个例外:

  • 我有一些可折叠的项目,如果我点击第一个项目就可以了。但是单击另一个不会将上一个图标旋转到默认状态。

点击其他可折叠项时如何让箭头回到默认状态?

$(function() {
  $('.arrow-r').on('click', function() {
    $(this).find('.fa-angle-down').toggleClass('rotate-element');
  })
})
.rotate-element {
  @include transform (rotate(180deg));
}
.fa-angle-down {
  &.rotate-icon {
    position: absolute;
    right: 0;
    top: 17px;
    @include transition (all 150ms ease-in 0s);
  }
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="collapsible collapsible-accordion">
  <li><a class="collapsible-header arrow-r"> Menu 1<i class="fa fa-angle-down rotate-icon"></i></a>
    <div class="collapsible-body">
      <ul>
        <li><a>Item 1</a>
        </li>
        <li><a>Item 2</a>
        </li>
      </ul>
    </div>
  </li>
  <li><a class="collapsible-header arrow-r"> Menu 2<i class="fa fa-angle-down rotate-icon"></i></a>
    <div class="collapsible-body">
      <ul>
        <li><a>Item 1</a>
        </li>
        <li><a>Item 2</a>
        </li>
      </ul>
    </div>
  </li>
  <li><a class="collapsible-header"> Menu 3</a>
    <div class="collapsible-body">
      <ul>
        <li><a>Item 1</a>
        </li>
        <li><a>Item 2</a>
        </li>
      </ul>
    </div>
  </li>

【问题讨论】:

    标签: javascript jquery html css accordion


    【解决方案1】:

    请试试这个:

    $(function() {
      $('.arrow-r').on('click', function() {
        //Reset all but the current
        $('.arrow-r').not(this).find('.fa-angle-down').removeClass('rotate-element');
        //Rotate/reset the clicked one
        $(this).find('.fa-angle-down').toggleClass('rotate-element');
      })
    })
    

    【讨论】:

    • 我注意到一个问题——当我点击其他菜单时它工作正常,但如果我点击当前打开的菜单来关闭它就不行。你能给我一些建议吗?
    猜你喜欢
    • 2020-12-18
    • 1970-01-01
    • 1970-01-01
    • 2015-08-09
    • 2011-05-26
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    相关资源
    最近更新 更多