gpt4 book ai didi

jquery - 动画最大高度,其他元素滞后

转载 作者:太空宇宙 更新时间:2023-11-04 08:42:09 24 4
gpt4 key购买 nike

我正在尝试扩展 ul 的最大高度。更改 max-height 属性时(通过切换类,高度会立即更改,但 ul 下的元素会按照应有的方式尊重动画高度。

var expander = $('.skill-expand');
var skillsUl = $('.skills-list');
expander.on('click', function() {
skillsUl.toggleClass('unexpanded');
if (skillsUl.hasClass('unexpanded')) {
expander.html('<span class="fa fa-chevron-down">..\/..</span>');
} else {
expander.html('<span class="fa fa-chevron-up">../\..</span>');
}
return false;
});
.skills-list {
margin: 0;
padding: 0;
transition: max-height 1s ease-in-out;
max-height: 800px;
/*effectively auto*/
}

.skill-expand {
margin: auto;
text-align: center;
display: block;
}

.skills-list.unexpanded {
max-height: 60px;
overflow: hidden;
transition: max-height 1s ease-in-out;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="skills-list unexpanded">
<li class="skill-rating">Developers developers</li>
<li class="skill-rating">Developers developers</li>
<li class="skill-rating">Developers developers</li>
<li class="skill-rating">Developers developers</li>
<li class="skill-rating">Developers developers</li>
<li class="skill-rating">Developers developers</li>
<li class="skill-rating">Developers developers</li>
<li class="skill-rating">Developers developers</li>
<li class="skill-rating">Developers developers</li>
<li class="skill-rating">Developers developers</li>
<li class="skill-rating">Developers developers</li>
<li class="skill-rating">Developers developers</li>
<li class="skill-rating">Developers developers</li>
<li class="skill-rating">Developers developers</li>
<li class="skill-rating">Developers developers</li>
<li class="skill-rating">Developers developers</li>
<li class="skill-rating">Developers developers</li>
<li class="skill-rating">Developers developers</li>
<li class="skill-rating">Developers developers</li>
<li class="skill-rating">Developers developers</li>
<li class="skill-rating">Developers developers</li>
<li class="skill-rating">Developers developers</li>
<li class="skill-rating">Developers developers</li>
<li class="skill-rating">Developers developers</li>
</ul>

<a href="#" class="skill-expand"><span class="fa fa-chevron-up">..\/..</span></a>

https://jsfiddle.net/ubgmshzo/

当单击 ..\/.. 扩展器文本时,请注意扩展器元素向下移动之间的滞后。这是有原因的吗?

最佳答案

使用 jQuery UI toggleClass,您可以指定 duration 并使用 promise 触发上/下 V 形的切换。

var expander = $('.skill-expand');
var skillsUl = $('.skills-list');

expander.on('click', function() {
skillsUl.toggleClass('unexpanded', 1000).promise().done(function() {
if (skillsUl.hasClass('unexpanded')) {
expander.find('span').removeClass('fa-chevron-down');
expander.find('span').addClass('fa-chevron-up');
} else {
expander.find('span').removeClass('fa-chevron-up');
expander.find('span').addClass('fa-chevron-down');
}
});

return false;
});
.skills-list {
margin: 0;
padding: 0;
max-height: 800px;
/*effectively auto*/
}

.skill-expand {
margin: auto;
text-align: center;
display: block;
}

.skills-list.unexpanded {
max-height: 60px;
overflow: hidden;
}

.fa-chevron-up:before {
content: "..\\/..";
}

.fa-chevron-down:before {
content: "../\\..";
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.11.4/jquery-ui.min.js"></script>
<ul class="skills-list unexpanded">
<li class="skill-rating">Developers developers</li>
<li class="skill-rating">Developers developers</li>
<li class="skill-rating">Developers developers</li>
<li class="skill-rating">Developers developers</li>
<li class="skill-rating">Developers developers</li>
<li class="skill-rating">Developers developers</li>
<li class="skill-rating">Developers developers</li>
<li class="skill-rating">Developers developers</li>
<li class="skill-rating">Developers developers</li>
<li class="skill-rating">Developers developers</li>
<li class="skill-rating">Developers developers</li>
<li class="skill-rating">Developers developers</li>
<li class="skill-rating">Developers developers</li>
<li class="skill-rating">Developers developers</li>
<li class="skill-rating">Developers developers</li>
<li class="skill-rating">Developers developers</li>
<li class="skill-rating">Developers developers</li>
<li class="skill-rating">Developers developers</li>
<li class="skill-rating">Developers developers</li>
<li class="skill-rating">Developers developers</li>
<li class="skill-rating">Developers developers</li>
<li class="skill-rating">Developers developers</li>
<li class="skill-rating">Developers developers</li>
<li class="skill-rating">Developers developers</li>
</ul>

<a href="#" class="skill-expand"><span class="fa fa-chevron-up"></span></a>

我还将 span fa-chevron-upfa-chevron-down 移动到 CSS 中以便于切换而不是覆盖 HTML。

关于jquery - 动画最大高度,其他元素滞后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44045027/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com