[英]How to my toggle button change color only my collapse is opened in my bootstrap 3 navbar
當我們打開折疊時,按鈕改變顏色。 但是當我們通過按鈕單擊關閉折疊時,該按鈕不會返回其初始顏色。 按鈕是專注的。 我希望失去焦點。
我嘗試過使用css:focus,但是在按鈕關閉崩潰后它沒有失去焦點。 我認為jquery函數是必要的,雖然我已經嘗試過,但我的js技能應該不夠。
我需要幫助
我的Html代碼:
<div class="wrapper">
<div class="navbar navbar-default" role="navigation">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#">Project name</a>
</div>
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li class="active"><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li class="divider"></li>
<li class="dropdown-header">Nav header</li>
<li><a href="#">Separated link</a></li>
<li><a href="#">One more separated link</a></li>
</ul>
</li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li class="active"><a href="./">Default</a></li>
<li><a href="../navbar-static-top/">Static top</a></li>
<li><a href="../navbar-fixed-top/">Fixed top</a></li>
</ul>
</div><!--/.nav-collapse -->
</div>
</div>
我的CSS代碼:
.wrapper {width:100%, height:100%;}
我的jQuery函數:
$(document).ready(function () {
function CloseNav() {
$(".navbar-collapse").stop().animate({'height': 0},300, function () {
$('.navbar-collapse').removeClass('in').addClass("collapse");
});
$(".navbar-toggle").stop().removeClass('collapsed');
}
$('html').click(function (event) {
var clickover = $(event.target);
var _opened = $(".navbar-collapse").hasClass("navbar-collapse in");
if (_opened === true && !clickover.hasClass("navbar-toggle")) {
CloseNav();
}
});
});
嗨這里的問題是按鈕的focus
狀態一旦你點擊它永遠不會失去焦點,除非你再次點擊外面。 你可以試試這個:
首先創建一個復制按鈕的hover
和focus
狀態的類:
.highlight {background:#ddd}
然后你可以修改你的Jquery以強制按鈕在click
失去焦點狀態並應用該類來保持視覺效果:
$('.navbar-toggle').click(function() {
$(this).toggleClass('highlight').blur();
});
此外,每當您在按鈕外單擊時折疊關閉,您需要在那里添加一些:
if (_opened === true && !clickover.hasClass("navbar-toggle")) {
$('.navbar-toggle').toggleClass('highlight'); /**Add This**/
CloseNav();
}
檢查這個演示小提琴
試試這個CSS ......一個JS小提琴
.navbar-default button.navbar-toggle.collapsed:focus,
.navbar-default button.navbar-toggle.collapsed{ background-color: transparent;
-webkit-transition:all .4s;
-moz-transition:all .4s;
-ms-transition:all .4s;
-o-transition:all .4s;
transition:all .4s;
}
.navbar-default button.navbar-toggle:focus,
.navbar-default button.navbar-toggle.collapsed:hover{ background-color:#ddd;
-webkit-transition:all .4s;
-moz-transition:all .4s;
-ms-transition:all .4s;
-o-transition:all .4s;
transition:all .4s;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.