javascript - 单击下拉菜单时箭头旋转 180 度

标签 javascript html css drop-down-menu rotation

我有一个下拉菜单,我希望它右边的箭头在我点击它时旋转 180 度!问题是我在 html 中设置了箭头,而不是在 javascript 中。但是我认为从#navi 到#navigation 时可能有一种方法可以将它放在 css 中。

这是我的代码

<script>
$(document).ready(function(){
  $("#navi").click(function(){
$("#navigation").slideToggle(500);
  });
});
</script>
#navi{
margin-top:10px;
margin-left:20px;
width:170px;
height:30px;
line-height:30px;
padding-left:10px;
overflow:hidden;
color:{color:Navigation};
background:{color:Navigation background};
font-size:12px;
text-align:left;
}
 
#navi i{
position:absolute;
margin-left:77px;
margin-top:10px;
color:{color:Navigation}!important;
font-size:12px;
}
 
#navigation{
margin-top:10px;
margin-left:20px;
width:180px;
overflow:hidden;
display:none;
font-size:12px;
background:{color:Navigation background};
}

 
#navigationin a{
display:block;
font-size:12px;
line-height:18px;
width:180px;
overflow:hidden;
color:{color:Navigation link};
border-bottom:1px solid {color:Wide sidebar background};
padding:5px;
text-align:center;
}
 
#navigationin a:hover{
box-shadow: inset 180px 0 0 0 {color:Wide sidebar background};
color:{color:Hover};
-webkit-transition: all .7s ease-in-out;
-moz-transition: all .7s  ease-in-out;
-o-transition: all .7s  ease-in-out;
transition: all .7s  ease-in-out;
}

#navigationin a{
-webkit-transition: all .7s ease-in-out;
-moz-transition: all .7s  ease-in-out;
-o-transition: all .7s  ease-in-out;
transition: all .7s  ease-in-out;
}
<div id="navi"> NAVIGATION <i class="fa fa-chevron-down"></i></div>
 
<div id="navigation">
 
<div id="navigationin">

抱歉,我似乎无法让它工作。感谢您提供的任何帮助!

(如果你想要实际的例子,它在左侧悬停栏中的 www.typhotoshop.tumblr.com 上)

最佳答案

您所要做的就是,在您的箭头上添加 css3 过渡,并在最后添加/删除自定义类以旋转 180°,在其中触发过渡。

#navi .fa-chevron-down {
  transition: all 0.5s ease;
}
.rtoate180 {
  transform: rotate(180deg);
}

在js中添加点击navi时的toggleclass

$("#navi .fa-chevron-down").toggleClass("rtoate180");

以下工作片段:

$(document).ready(function(){
  $("#navi").click(function(){
    $("#navi .fa-chevron-down").toggleClass("rtoate180");
    $("#navigation").stop().slideToggle(500);
  });
});
#navi .fa-chevron-down {
  transition: all 0.5s ease;
}
.rtoate180 {
  transform: rotate(180deg);
}

#navi{
margin-top:10px;
margin-left:20px;
width:170px;
height:30px;
line-height:30px;
padding-left:10px;
overflow:hidden;
color:{color:Navigation};
background:{color:Navigation background};
font-size:12px;
text-align:left;
}
 
#navi i{
position:absolute;
margin-left:77px;
margin-top:10px;
color:{color:Navigation}!important;
font-size:12px;
}
 
#navigation{
margin-top:10px;
margin-left:20px;
width:180px;
overflow:hidden;
display:none;
font-size:12px;
background:{color:Navigation background};
}

 
#navigationin a{
display:block;
font-size:12px;
line-height:18px;
width:180px;
overflow:hidden;
color:{color:Navigation link};
border-bottom:1px solid {color:Wide sidebar background};
padding:5px;
text-align:center;
}
 
#navigationin a:hover{
box-shadow: inset 180px 0 0 0 {color:Wide sidebar background};
color:{color:Hover};
-webkit-transition: all .7s ease-in-out;
-moz-transition: all .7s  ease-in-out;
-o-transition: all .7s  ease-in-out;
transition: all .7s  ease-in-out;
}

#navigationin a{
-webkit-transition: all .7s ease-in-out;
-moz-transition: all .7s  ease-in-out;
-o-transition: all .7s  ease-in-out;
transition: all .7s  ease-in-out;
}
<link href="//maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="navi"> NAVIGATION 
  <i class="fa fa-chevron-down"></i>
</div>
 

<div id="navigation">
  <ul>
    <li>menu</li>
    <li>menu</li>
    <li>menu</li>
  </ul>
</div>
 
<div id="navigationin"></div>

关于javascript - 单击下拉菜单时箭头旋转 180 度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43853946/

相关文章:

javascript - Vuejs 将现有匿名对象分配给 data 属性中的属性

html - 将 10 个 cols 分成 3 个 css

javascript - 在移动其他元素时保存 Canvas 中元素的位置

javascript - jQuery滑动菜单错误

javascript - jQuery fadeIn/fadeOut 而不是 fadeToggle

css - 形状 div 周围 CSS 中的单位测量线

javascript - 使用javascript通过鼠标悬停更改div的类名

javascript - 为其他页面预加载外部文件(CSS、JavaScript)

javascript - 带单选和文本的 HTML 表单输入 - 选择

JavaScript EventSource SSE 未在浏览器中触发