我正在尝试创建一个菜单。单击菜单元素时,我想为其边框底部的宽度设置动画。 我的问题是,当单击另一个元素时,我找不到如何将边框底部宽度设置为“0”的方法。
任何解决方案?
$("#hww, #proj, #digi, #cont").click(function(){
$( this ).animate({
borderBottomWidth: "10px",
}, 200 );
});
.menu_text {
opacity: 1;
font-size: 20px;
margin-right: 100px;
padding-left: 0px;
cursor: pointer;
border: 0px solid black;
border-bottom: 1px solid rgba(0,0,0,0.5);
border-bottom-width: 0px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="menu_bar">
<div id="menu_box">
<div id="cont" class="menu_text">CONTACT</div>
<div id="digi" class="menu_text">DIGITAL SERVICES</div>
<div id="proj" class="menu_text">PROJECTS</div>
<div id="hww" class="menu_text">HOW WE WORK</div>
</div>
</div>
答案 0 :(得分:0)
您可以保留对变量中所有元素的引用,并将它们设置为0。
var menu = $("#hww, #proj, #digi, #cont").click(function() {
// remove from previous element
menu.not(this).animate({
borderBottomWidth: 0
}, 200);
// show on current
$(this).animate({
borderBottomWidth: "10px",
}, 200);
});
&#13;
.menu_text {
opacity: 1;
font-size: 20px;
margin-right: 100px;
padding-left: 0px;
cursor: pointer;
border: 0px solid black;
border-bottom: 1px solid rgba(0, 0, 0, 0.5);
border-bottom-width: 0px;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="menu_bar">
<div id="menu_box">
<div id="cont" class="menu_text">CONTACT</div>
<div id="digi" class="menu_text">DIGITAL SERVICES</div>
<div id="proj" class="menu_text">PROJECTS</div>
<div id="hww" class="menu_text">HOW WE WORK</div>
</div>
</div>
&#13;
更好的解决方案是通过CSS处理所有内容
$("#menu_box").on('click', '.menu_text', function(e){
$(this).addClass('active').siblings().removeClass('active');
});
&#13;
.menu_text {
opacity: 1;
font-size: 20px;
margin-right: 100px;
padding-left: 0px;
cursor: pointer;
border: 0px solid black;
border-bottom: 1px solid rgba(0, 0, 0, 0.5);
border-bottom-width: 0px;
transition: border-bottom-width 200ms;
}
.menu_text.active{
border-bottom-width:10px;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="menu_bar">
<div id="menu_box">
<div id="cont" class="menu_text">CONTACT</div>
<div id="digi" class="menu_text">DIGITAL SERVICES</div>
<div id="proj" class="menu_text">PROJECTS</div>
<div id="hww" class="menu_text">HOW WE WORK</div>
</div>
</div>
&#13;