簡體   English   中英

在下拉按鈕內旋轉字體超贊圖標180deg

[英]Rotate Font-Awesome Icon 180deg Inside Dropdown Button

我創建了一些自定義按鈕樣式,並使用bootstraps下拉菜單將它們轉換為下拉菜單。 當我單擊按鈕時,我希望在下拉菜單打開時,里面的字體超贊圖標旋轉180度,並在按鈕失去活動/焦點后以相反的方式旋轉180度,回到其原始位置。

我已經能夠正確執行的代碼將圖標旋轉180度,使其朝上。 但是我無法使其向下旋轉。 另外,我有這兩個css類。 我一直將它們注釋掉,因為激活它們只會增加怪異的淡入淡出效果。 代碼如下。

HTML:

<div class="dropdown">
          <a id="dropdown1" class="hlo-btn-round-dropdown dropdown-toggle " data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" type="button" tabindex="1">Dropdown <i class="fa fa-chevron-down fa-color icon-rotates" aria-hidden="true"></i></a>
          <ul class="dropdown-menu" aria-labelledby="dropdown1">
            <li><a href="#">Action</a></li>
            <li><a href="#">Another action</a></li>
            <li><a href="#">Something else here</a></li>
            <li role="separator" class="divider"></li>
            <li><a href="#">Separated link</a></li>
          </ul>

</div>

CSS:

.icon-rotates {
  -moz-transition: all 1s linear;
  -webkit-transition: all 1s linear;
  transition: all 1s linear;
}

.icon-rotates.rotate {
  -moz-transition: rotate(180deg);
  -webkit-transition: rotate(180deg);
  transition: rotate(180deg);
}

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的方法。

實際上,您可以使用bootstrap Class來實現。您不必編寫額外的jquery代碼。

您是否注意到下拉列表打開時有一個額外的類(打開)? 因此,當.dropdown具有.open類(例如.dropdown.open)時,則需要向.icon-rotates(例如.dropdown.open .icon-rotates)添加額外的規則。

 .icon-rotates { -moz-transition: all 1s linear; -webkit-transition: all 1s linear; transition: all 1s linear; } .icon-rotates.rotate { -moz-transition: rotate(180deg); -webkit-transition: rotate(180deg); transition: rotate(180deg); } .dropdown.open .icon-rotates { -webkit-transform: rotate(180deg); transform: rotate(180deg); } 
 <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/> <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> <div class="dropdown"> <a id="dropdown1" class="hlo-btn-round-dropdown dropdown-toggle " data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" type="button" tabindex="1">Dropdown <i class="fa fa-chevron-down fa-color icon-rotates" aria-hidden="true"></i></a> <ul class="dropdown-menu" aria-labelledby="dropdown1"> <li><a href="#">Action</a></li> <li><a href="#">Another action</a></li> <li><a href="#">Something else here</a></li> <li role="separator" class="divider"></li> <li><a href="#">Separated link</a></li> </ul> </div> 

由於您使用的是引導程序,因此可以捕獲下拉菜單的hiddden.bs.dropdown事件,以了解下拉菜單關閉的時間,並將圖標旋轉回正常位置-

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

這里是一個工作的jsfiddle看到這個動作- https://jsfiddle.net/schikara/qre4wpcb/1/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM