我创建了一个搜索模式,它是通过jQuery触发的,它将类-open
添加到主父div #search-box
。我的问题是,#search-box
会消失,但input
不会转换。我不确定为什么会这样。 Here is a link to the full codepen
#search-box {
display: none;
position: absolute;
height: 100%;
width: 100%;
position: fixed;
top: 0;
left: 0;
right: 0;
z-index: 999999999;
input {
border-bottom: 2px solid white;
display: block;
width: 100%;
transform: scale3d(0,1,1);
transform-origin: 0% 50%;
transition: transform 3s;
}
&.-open{
background: rgba(0, 0, 0, .8);
display: block;
animation: fadein .8s;
input{
transform: scale3d(1,1,1);
transition-duration: 10s;
transition-delay: 2s;
}
}
}
@keyframes fadein {
from { opacity: 0; }
to { opacity: 1; }
}
这是jquery
$('a[href="#search"]').click(function() {
$("#search-box").addClass("-open");
setTimeout(function() {
inputSearch.focus();
}, 800);
});
$('a[href="#close"]').click(function() {
$("#search-box").removeClass("-open");
});
答案 0 :(得分:3)
原因是父#search-box
正在从display: none
切换到block
,并且css转换不会触发该更改。
一些解决方案是使animation
缩放输入元素,或以另一种方式隐藏#search-box
。与使用height:0; overflow:hidden
或visibility: hidden
>相同visibility: visible
。
答案 1 :(得分:0)
试试这个: https://codepen.io/adrianroworth/pen/rjPdKj
原因是display: none
/ display: block
导致动画无法正常工作。我已经改变了使用绝对位置将其定位在离屏幕同时仍然可见的方式。