我正在尝试制作一个响应式动态搜索字段。 单击搜索图标时,它将显示并更改按钮图标。 此外,在搜索字段外单击时它将关闭。
代码笔在这里
立即购买,当单击搜索字段的外部和内部时关闭。
jQuery(document).ready(function($){
$('.search-button').on('click',function(e){
e.stopPropagation();
$('.search-field-wrap').toggle(500);
$('.search-field-wrap').css("display","flex");
$('.search-button>.fa').toggleClass("fa-search fa-close");
});
$(document).click(function(e){
$(".search-field-wrap").slideUp(300);
$('.search-button>.fa').toggleClass("fa-search fa-close");
});
});
html {
margin: 40px auto;
}
.search-field-wrap{
display:none;
}
.search-wrap{
display:inline-flex;
}
.search-filed-item{
display:inline-flex;
}
.btn-search {
background: #424242;
border-radius: 0;
color: #fff;
border-width: 1px;
border-style: solid;
border-color: #1c1c1c;
}
.btn-search:active, .btn-search:hover {
background: #1c1c1c;
color: #fff;
}
<link rel='stylesheet' href='https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css'>
<link rel='stylesheet' href='https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css'>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
<div class="search-wrap col-sm-4">
<button class="search-button btn" type="button"><i class="fa fa-search fa-fw"></i></button>
<div class="search-field-wrap">
<input type="text" class="search-filed-item form-control" placeholder="Search for...">
<button class="search-filed-item btn btn-search" type="button"><i class="fa fa-search fa-fw"></i></button>
</div>
</div>
</div>
只需在单击文档时检查字段属性即可。它会帮助你。
jQuery(document).ready(function($){
$('.search-button').on('click',function(e){
e.stopPropagation();
$('.search-field-wrap').toggle(500);
$('.search-field-wrap').css("display","flex");
$('.search-button>.fa').toggleClass("fa-search fa-close");
});
$(document).click(function(e){
e.stopPropagation();
$(".search-field-wrap").slideUp(300);
if($('.search-field-wrap').css("display") == 'flex'){
$('.search-button>.fa').toggleClass("fa-search fa-close");
}
});
$(".search-filed-item").click(function(e) {
e.stopPropagation();
});
});
html {
margin: 40px auto;
}
.search-field-wrap{
display:none;
}
.search-wrap{
display:inline-flex;
}
.search-filed-item{
display:inline-flex;
}
.btn-search {
background: #424242;
border-radius: 0;
color: #fff;
border-width: 1px;
border-style: solid;
border-color: #1c1c1c;
}
.btn-search:active, .btn-search:hover {
background: #1c1c1c;
color: #fff;
}
<link rel='stylesheet' href='https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css'>
<link rel='stylesheet' href='https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css'>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
<div class="search-wrap col-sm-4">
<button class="search-button btn" type="button"><i class="fa fa-search fa-fw"></i></button>
<div class="search-field-wrap">
<input type="text" class="search-filed-item form-control" placeholder="Search for...">
<button class="search-filed-item btn btn-search" type="button"><i class="fa fa-search fa-fw"></i></button>
</div>
</div>
</div>
您需要输入字段和搜索按钮的单击处理程序,以便单击该按钮不会传播到文档。
此外,单击搜索按钮外部应始终关闭搜索字段,而不是切换它。
jQuery(document).ready(function($){
$('.search-button').on('click',function(e){
e.stopPropagation();
$('.search-field-wrap').toggle(500);
$('.search-field-wrap').css("display","flex");
$('.search-button>.fa').toggleClass("fa-search fa-close");
});
$(document).click(function(e){
e.stopPropagation();
$(".search-field-wrap").slideUp(300);
$('.search-button>.fa').removeClass("fa-search").addClass("fa-close");
});
$(".search-filed-item").click(function(e) {
e.stopPropagation();
});
});
html {
margin: 40px auto;
}
.search-field-wrap{
display:none;
}
.search-wrap{
display:inline-flex;
}
.search-filed-item{
display:inline-flex;
}
.btn-search {
background: #424242;
border-radius: 0;
color: #fff;
border-width: 1px;
border-style: solid;
border-color: #1c1c1c;
}
.btn-search:active, .btn-search:hover {
background: #1c1c1c;
color: #fff;
}
<link rel='stylesheet' href='https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css'>
<link rel='stylesheet' href='https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css'>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
<div class="search-wrap col-sm-4">
<button class="search-button btn" type="button"><i class="fa fa-search fa-fw"></i></button>
<div class="search-field-wrap">
<input type="text" class="search-filed-item form-control" placeholder="Search for...">
<button class="search-filed-item btn btn-search" type="button"><i class="fa fa-search fa-fw"></i></button>
</div>
</div>
</div>