Javascript 在下拉按钮内将字体图标旋转180度

Javascript 在下拉按钮内将字体图标旋转180度,javascript,jquery,css,twitter-bootstrap-3,font-awesome,Javascript,Jquery,Css,Twitter Bootstrap 3,Font Awesome,我创建了一些自定义按钮样式,并使用引导下拉类将它们转换为下拉列表。当我单击按钮时,我希望在下拉列表打开时,内部的字体awesome图标旋转180度,并在按钮失去活动/焦点后,以相反的方式旋转180度,返回到其原始位置 我能右转的代码将图标旋转180度,指向上方。但我不能让它转回来。另外,我有两个css类。我一直没有评论它们,因为激活它们只会增加一种奇怪的褪色效果。代码如下 HTML: JS: 我对这些课程的评论是这样的,因为它们让一切都很奇怪 $('.hlo-btn-round-dropdown

我创建了一些自定义按钮样式,并使用引导下拉类将它们转换为下拉列表。当我单击按钮时,我希望在下拉列表打开时,内部的字体awesome图标旋转180度,并在按钮失去活动/焦点后,以相反的方式旋转180度,返回到其原始位置

我能右转的代码将图标旋转180度,指向上方。但我不能让它转回来。另外,我有两个css类。我一直没有评论它们,因为激活它们只会增加一种奇怪的褪色效果。代码如下

HTML:

JS: 我对这些课程的评论是这样的,因为它们让一切都很奇怪

$('.hlo-btn-round-dropdown').click(function(){

  if($(this).css("transform") == 'none') {
    $(this).children().css('transform', 'rotate(180deg)');
  } else {
    $(this).children().css('transform', 'none');
  }

});

提前感谢您的回答!jQuery似乎总是给我带来问题,或者可能我组合了太多旋转此idk的方法。

因为您使用的是引导,您可以捕获下拉列表的
hidden.bs.dropdown
事件,以了解下拉列表何时关闭并将图标旋转回正常位置-

$(".dropdown").on("hidden.bs.dropdown", function(){
    $(this).find('.hlo-btn-round-dropdown').children().css('transform', 'none');
});

下面是一个正在运行的JSFIDLE,可以看到它的实际作用-

实际上,您可以使用引导类来完成它,您不必编写额外的jquery代码

您是否注意到,当下拉列表打开时,它有一个额外的类(打开)? 因此,当.dropdown具有class.open(比如.dropdown.open)时,您可以向.icon旋转添加额外的规则(比如.dropdown.open.icon旋转)

。图标旋转{
-moz过渡:所有1s线性;
-webkit转换:所有1s线性;
过渡:所有1s线性;
}
.icon-rotates.rotate{
-moz过渡:旋转(180度);
-webkit过渡:旋转(180度);
过渡:旋转(180度);
}
.dropdown.open.图标旋转{
-webkit变换:旋转(180度);
变换:旋转(180度);
}



  • BRO!你真是个天才!在运行代码段之前阅读代码看起来完全行不通。。我其实不明白,但不管怎样。
    $('.hlo-btn-round-dropdown').click(function(){
    
      if($(this).css("transform") == 'none') {
        $(this).children().css('transform', 'rotate(180deg)');
      } else {
        $(this).children().css('transform', 'none');
      }
    
    });
    
    $(".dropdown").on("hidden.bs.dropdown", function(){
        $(this).find('.hlo-btn-round-dropdown').children().css('transform', 'none');
    });