当使用JQuery的淡入淡出功能时,如果一个元素以'display:none'开头,然后淡出,JQuery将在淡入项目时注入'display:block'。JQuery 3.1.1和CSS flexbox
在flexbox布局中,这会导致元素换行到下一行。
当我禁用父母上的display:flex
时,其行为与预期相同。
有没有办法在最初需要隐藏的特定元素上禁用display:flex
?
我可以只使用解决此问题:
$('el').fadeIn().css('display','inline-block');
但这种方法是不可取的在这种情况下。有什么建议么?
这里是一个演示
上#flex
$('#clickme').click(function() {
$('#test').fadeToggle();
return false;
});
#flex {
display: flex; /* BREAKS JQUERY FADE, JQUERY INJECTS DISPLAY:BLOCK; */
flex-direction: column;
}
#main {
flex: 1;
}
.hidden {
display: none;
}
<script type="text/javascript" src="//code.jquery.com/jquery-3.1.1.min.js"></script>
<body id="flex">
<div id="main">
<span class="tools">
<a class="a" href="" id="clickme">Click Me</a>
<span id="test" class="hidden">I should be inline!</span>
</span>
</div>
</body>
如果禁用display:flex
它按预期工作/期望。
这里的演示可能是有用的 –
https://开头的jsfiddle。 net/60xush0w/ –
我不认为这是可能的nati真正使用Jquery的*“淡入淡出”*。没有“显示器:flex-item”这是**应该被应用的东西。不幸的是,你可能不得不在这里编写你自己的函数。 –