1 回答
TA贡献1810条经验 获得超5个赞
是你想要的吗?我添加了“溢出:隐藏;” 在你的“li”css中:
$('#menu>li').on('click', function(e) {
$('#menu>li').removeClass('active');
$(this).addClass('active');
});
$('#menu>li').on('click', function(e) {
if (!e.originalEvent) return;
var clickedItem = e.currentTarget;
console.log('Clicked on', clickedItem)
$('#menu>li').each(function (x, i) {
console.log(x, i)
var li = $(i);
if (!li.hasClass('active')) {
var newHeight = li.height() <= 0 ? '40px' : '0';
console.log('setting', newHeight);
li.height(newHeight);
}
});
});
ul {
margin-top: 60px;
}
li {
transition: all 0.2s ease-in-out;
background: grey;
color: white;
height: 0;
overflow: hidden;
}
li.active {
height: 40px;
background: blue;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul id="menu">
<li class="listElement active">Test me 1</li>
<li class="listElement" style="padding-left:70px">Test me 2</li>
<li class="listElement" style="padding-left:140px">Test me 3</li>
<li class="listElement" style="padding-left:210px">Test me 4</li>
</ul>
顺便说一句,这并不意外,只是因为 div 高度为 0 导致文本溢出。
添加回答
举报
