'Search bar below search button - on click
I am developing webpages for angular 4 application using bootstrap 3.
Trying to add a search button (top right/top left) which will expand in next row on click. Refer top right corner search button here.
<div class="row">
<div class="col-xs-3">
<form id="demo-2" style="margin-left: 10px">
<input type="search" placeholder="Search..">
</form>
</div>
</div>
css
input {
outline: none;
}
input[type=search] {
-webkit-appearance: textfield;
-webkit-box-sizing: content-box;
font-family: inherit;
font-size: 100%;
}
input::-webkit-search-decoration,
input[type=search] {
background: #ededed url(https://static.tumblr.com/ftv85bp/MIXmud4tx/search-icon.png) no-repeat 9px center;
border: solid 1px #ccc;
padding: 7px 9px 7px 17px;
width: 55px;
border-radius: 1em;
-webkit-transition: all .5s;
-moz-transition: all .5s;
transition: all .5s;
}
input[type=search]:focus {
width: 170px;
background-color: #fff;
-webkit-box-shadow: 0 0 5px rgba(109,207,246,.5);
-moz-box-shadow: 0 0 5px rgba(109,207,246,.5);
box-shadow: 0 0 5px rgba(109,207,246,.5);
}
#demo-2 input[type=search] {
width: 15px;
padding-left: 10px;
color: transparent;
cursor: pointer;
}
#demo-2 input[type=search]:hover {
background-color: #fff;
}
#demo-2 input[type=search]:focus {
width: 200px;
padding-left: 32px;
color: #000;
background-color: #fff;
cursor: auto;
color: black;
}
#demo-2 input:-moz-placeholder {
color: transparent;
}
#demo-2 input::-webkit-input-placeholder {
color: transparent;
}
This gives me search bar expand in same row. I've tried to get examples for the same. But all of them talk about expanding same row.
NOTE: The search bar & search button will be in same row for desktop view. Similar to this. Will change responsively to mobile view.
Thanks in advance. Suggestions are most welcome.
Solution 1:[1]
The search button doesn't really get expanded on the next row, it toggles a new element that's positioned underneath it. Check out the examples below to see what I mean.
Option 1 (with simple JQuery code)
$(document).ready(function(){
$(".toggle-search").click(function(){
$(".search-input").toggle();
});
});
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.11.0/umd/popper.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/js/bootstrap.min.js"></script>
<button class="toggle-search"> Search </button>
<div class="container">
<form class="row search-input" id="demo-2" style="margin-left: 10px">
<input class="col-lg-12" type="search" placeholder="Search..">
</form>
</div>
Option 2 (doesn't include additional JQuery Code but still requires the JQuery Library)
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.11.0/umd/popper.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/js/bootstrap.min.js"></script>
<button type="button" class="btn btn-info" data-toggle="collapse" data-target=".search-input"> Search </button>
<div class="container collapse search-input">
<form class="row" id="demo-2" style="margin-left: 10px">
<input class="col-lg-12" type="search" placeholder="Search..">
</form>
</div>
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 |
