Reputation: 439
I'm trying to get a nice transition effect for my search bar, however every transition starts and ends from a 0px width state for some reason. Does anyone know what could cause this? Thank you.
this is the code:
CSS
#searchBox {
border-radius: 15px;
-webkit-transition: width .30s ease-in;
transition: width .30s ease-in;
}
#searchBox:focus {
width: 300px;
-webkit-transition: width .30s ease-out;
transition: width .30s ease-out;
}
HTML
<nav class="navbar navbar-default" role="navigation">
<div class="container-fluid">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
<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="/home"><img src="/images/logo.png" width="35px"></a>
</div>
<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse">
<ul class="nav navbar-nav">
<li class="active"><a href="/home"><span class="glyphicon glyphicon-home"></span> Home</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">New <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="#">New Tour</a></li>
<li class="divider"></li>
<li><a href="#">New Guide</a></li>
<li><a href="#">New Hotel</a></li>
<li><a href="#">New Restaurant</a></li>
<li><a href="#">New Attraction</a></li>
<li class="divider"></li>
<li><a href="#">Something else</a></li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">View <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="#">Tours</a></li>
<li class="divider"></li>
<li><a href="#">Guides</a></li>
<li><a href="#">Hotels</a></li>
<li><a href="#">Restaurants</a></li>
<li><a href="#">Attractions</a></li>
<li class="divider"></li>
<li><a href="#">Something else</a></li>
</ul>
</li>
</ul>
<ul class="nav navbar-nav navbar-right">
<form class="navbar-form navbar-left" role="search">
<div class="form-group">
<input type="text" id="searchBox" class="form-control" placeholder="Search">
</div>
<button type="submit" class="btn btn-default">Submit</button>
</form>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">{{user.name}} <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="#">Account</a></li>
<li class="divider"></li>
<li><a href="#">My Tours</a></li>
<li class="divider"></li>
<li><a href="/logout">Logout</a></li>
</ul>
</li>
</ul>
</div><!-- /.navbar-collapse -->
</div><!-- /.container-fluid -->
</nav>
Upvotes: 1
Views: 1066
Reputation: 27465
#searchBox
didn't mentioned its width. Try the code below
#searchBox {
width: 175px;
border-radius: 15px;
-webkit-transition: width 0.30s linear 0s;
-moz-transition: width 0.30s linear 0s;
-ms-transition: width 0.30s linear 0s;
-o-transition: width 0.30s linear 0s;
transition: width 0.30s linear 0s;
}
#searchBox:focus {
width: 300px;
}
DEMO http://www.bootply.com/118100
Upvotes: 1