[英]Jquery toggle action for animate function effects height of search icon
I am creating a search field with the click function (animate) but as you can see from this example: https://www.ve.com/search when you click on the search icon it moves up and down and I am not sure why this is happening. 我正在创建带有点击功能(动画)的搜索字段,但是从此示例中可以看到: https : //www.ve.com/search,当您单击搜索图标时,它会上下移动,我不确定为什么会这样。
I am sure it is something very simple but not sure what it is I am doing wrong. 我确定这很简单,但不确定我做错了什么。
Code below: 代码如下:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("button").click(function(){
$(".hs-search-field__bar").animate({width: "toggle"});
if ($(".hs-search-field__bar").is(':visible'))
$(".hs-search-field__bar").css('display','inline-block');
});
});
</script>
<div class="search-separator">
<div class="hs-search-field">
<div class="hs-search-field__bar" style="display:none;" >
<form action="/{{ site_settings.content_search_results_page_path }}">
<input type="search" class="hs-search-field__input" name="term" autocomplete="off" placeholder="{{ module.placeholder }}">
</form>
</div>
<button class="search-button"> <i class="fa fa-search"></i></button>
</div>
</div>
As Michael pointed out, during the animation there is an overflow: hidden
; 正如Michael所指出的,在动画制作过程中有一个overflow: hidden
;
WORKAROUND 解决方法
Don't use jQuery animations. 不要使用jQuery动画。
Animate via CSS instead 通过CSS制作动画
<div class="hs-search-field__bar">
...
</div>
$(".search-button").on("click", function(){
$(".hs-search-field__bar").toogleClass("show");
});
CSS 的CSS
.hs-search-field__bar{
width: 0;
overflow:hidden;
-webkit-transition: width 1s ease-in-out;
-moz-transition: width 1s ease-in-out;
-o-transition: width 1s ease-in-out;
transition: width 1s ease-in-out;
}
.hs-search-field__bar.show{
width:auto; /* or some width you want, including 100% */
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.