javascript - 用于动画功能效果搜索图标高度的 Jquery 切换操作
问题描述
我正在使用单击功能(动画)创建一个搜索字段,但正如您从这个示例中看到的那样:https ://www.ve.com/search当您单击搜索图标时,它会上下移动,我不确定为什么会这样。
我确信这是非常简单的事情,但不确定我做错了什么。
下面的代码:
<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>
解决方案
正如迈克尔指出的那样,在动画期间有一个overflow: hidden
;
解决方法
不要使用 jQuery 动画。
改为通过 CSS 制作动画
<div class="hs-search-field__bar">
...
</div>
$(".search-button").on("click", function(){
$(".hs-search-field__bar").toogleClass("show");
});
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% */
}
推荐阅读
- python - 我应该如何处理包含大约 300000 个小数据表组的数据集?
- ssl - TLS 握手失败
- go - 列出模块的依赖项,而不是包
- android - 我的列表大小是整个屏幕,看不到下面的按钮或滚动
- python - 时间表不会显示
- facebook - 颤振:为 iOS 8.0 编译,但模块 'FBSDKCoreKit' 的最低部署目标为 iOS 9.0
- java - 使用 Thymeleaf 启动 CRUD 应用程序:接受视频类型
- javascript - react forEach 计算但不显示
- django - 在 django 中过滤后的分页
- c - 如何调整我的函数,以便我可以在一个函数内进行多次计算