gpt4 book ai didi

javascript - 带有 CSS 动画问题的 jQuery 可点击下拉列表

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

请查看这个 fiddle :https://jsfiddle.net/willbeeler/tfm8ohmw/

HTML:

<a href="#" class="roll-btn">Do it! Roll me down and up again!</a>
<ul class="roll-btns">
<li><a href="#" class="control animated noshow one">Milk</a></li>
<li><a href="#" class="control animated noshow two">Eggs and Cheese</a></li>
<li><a href="#" class="control animated noshow three">Bacon and Eggs</a></li>
<li><a href="#" class="control animated noshow four">Bread</a></li>
</ul>

jQUERY

$('.roll-btn').click(function() {

var ctrls = '.control';

if ($(ctrls).hasClass('noshow'))
{
$(ctrls).each(function() {
$(this).removeClass('noshow');
$(this).addClass('fadeInDown');
});
} else {
$(ctrls).each(function() {
$(this).removeClass('fadeInDown');
$(this).addClass('fadeOutDown');
});
}

});

这是一件非常简单的事情,但我在实现它时遇到了麻烦。基本上,“noshow”类是 A 元素的开关。如果不存在,则将 CSS 动画添加到 A 元素。如果存在 CSS 动画,则添加另一个 css 元素以隐藏 A 元素。我试过延迟“noshow”类,其他方法都无济于事。整个示例在前两次点击时可以正常工作,但是因为它没有添加 noshow 类,所以之后就不能工作了。基本上,在 CSS 动画播放完毕后,我需要在第二次点击时添加 noshow 类。

最佳答案

$('.roll-btn').click(function() {

var ctrls = '.control';

if ($(ctrls).hasClass('noshow') || $(ctrls).hasClass('fadeOutDown')) {
$(ctrls).each(function() {
$(this).removeClass('noshow');
$(this).addClass('fadeInDown');
$(this).removeClass('fadeOutDown');
});
} else {
$(ctrls).each(function() {
$(this).removeClass('fadeInDown');
$(this).addClass('fadeOutDown');
});
}
});

关于javascript - 带有 CSS 动画问题的 jQuery 可点击下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38705828/

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