当前位置: 首页 > 知识库问答 >
问题:

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

常雅达
2023-03-14

我创建了一些自定义按钮样式,并使用引导下拉类将它们转换为下拉列表。当我单击按钮时,我希望在下拉列表打开时,内部的字体awesome图标旋转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。

共有2个答案

暨弘毅
2023-03-14

因为您使用的是引导,所以可以捕获下拉列表的hidden。学士学位。下拉菜单事件,以确定下拉菜单何时关闭并将图标旋转回正常位置-

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

下面是一个正在运行的JSFIDLE,可以看到这一点-https://jsfiddle.net/schikara/qre4wpcb/1/

胡景焕
2023-03-14

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

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

.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>
 类似资料:
  • 我希望我的移动菜单上的向下箭头旋转180度,并在点击时朝上。我还想动画旋转平稳过渡。我使用Javascript切换一个". js-Rotate"类在我的". fa-角-向下"字体-真棒类。 JS函数中的最后一行控制此行为: 我尝试添加一个“transition:transform1s到“.fa角度向下”,但我没有运气。 CSS可通过以下链接的sass/组件/_navigation.scss获得:h

  • 我想静态旋转我的字体图标45度。网站上说: 要任意旋转和翻转图标,请使用fa-roate-*和fa-fllip-*类。 但是, 不起作用,而将替换为起作用。这是否意味着它们实际上不能任意旋转?

  • 我有麻烦弄清楚什么应该是一个简单的任务,但似乎不能旋转这个雪佛龙180度点击。我们的RTE将标记转换为,我们使用的是jQuery的旧版本(1.12.4),但我不认为这些会导致问题。我已经尝试了多种脚本,到目前为止已经登陆了。有谁能看出我缺了什么吗?: null null 演示:https://jsfidle.net/codewalker/5su8029z/4/

  • 我有一个wordpress网站,http://watershedgeo.staging.wpengine.com/#,我使用了一个主题,它内置在导航菜单中。 我已经修改了它,在有下拉项的菜单项之后使用字体可怕的图标。我用的是直角, 我不想构建任何JS到这个,我知道它可以用CSS完成,我只是不确定最好的方法来做到这一点,也可以在WP环境中很好地工作。 当前CSS:

  • 我有这样的div标签 并且脚本将在每次单击“a”标记时运行 每当点击<代码> 谢谢:)

  • 我被我的下拉内容卡住了。试图旋转单击按钮标题旁边的箭头。第一个内容是默认打开的,这样arrow应该默认在那里转动。 > 当前代码默认情况下不转动内容1箭头,并且 点击旋转所有箭头,因为我不知道如何在js中正确引用当前图标。 任何建议都是非常欢迎的。