gpt4 book ai didi

jquery - 第二次调用 fadeIn() 不会执行任何操作

转载 作者:行者123 更新时间:2023-12-01 04:58:48 25 4
gpt4 key购买 nike

我想在两个内容之间切换。其特殊之处在于元素必须按顺序淡出和淡入。我的问题是第一个淡出/淡入有效,但是当我再次触发该过程时,什么也没有发生。要重现,请依次单击顶部的三个链接,然后返回到 Box1。

编辑:哦,是的,当然,一个jsfiddle: http://jsfiddle.net/UANvC/

代码片段:

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<link href="style.css" rel="stylesheet" />
<script src="jquery-1.7.2.min.js" ></script>
</head>


<body>
<a href="" id="start">start</a>
<a href="" id="button1">one</a>
<a href="" id="button2">two</a>

<div id="boxes">
<div id="box1" class="invisible"><p>box1</p></div>
<div id="box2" class="invisible"><p>box2</p></div>
</div>

<div id="box11" class="box box1">box11</div>
<div id="box12" class="box box1">box12</div>
<div id="box13" class="box box1">box13</div>
<div id="box14" class="box box1">box14</div>
<div id="box15" class="box box1">box15</div>


<div id="box21" class="box box2">box21</div>
<div id="box22" class="box box2">box22</div>
<div id="box23" class="box box2">box23</div>
<div id="box24" class="box box2">box24</div>
<div id="box25" class="box box2">box25</div>


<script src="script.js" ></script>

</body>
</html>

CSS:

.invisible {
display: none;
}
#boxes {
width: 300px;
height: 300px;
border: 1px solid #ccc;
}
#boxes p {
width: 300px;
height: 300px;
}
.box {
float:left;
width: 50px;
height: 50px;
border: 1px solid #ccc;
display: none;
}

Javascript:

function showBox1() {
$('.box1').each(function(key, value) {
$(this).delay(50 * (key)).fadeIn(200, function() {
$('#box1').fadeIn(200);
});
});
}
function showBox2() {
$('.box2').each(function(key, value) {
$(this).delay(50 * (key)).fadeIn(200, function() {
$('#box2').fadeIn(200);
});
});
}
function hideBox1(callback) {
$('.box1').each(function(key, value) {
$(this).delay(50 * (key)).fadeOut(200);
});
$('#box1').delay(50*6).fadeOut(200).delay(50*7, function() {
callback();
});
}
function hideBox2(callback) {
$('.box2').each(function(key, value) {
$(this).delay(50 * (key)).fadeOut(200);
});
$('#box2').delay(50*6).fadeOut(200).delay(50*7, function() {
callback();
});
}

$('#start').on('click', function() {
showBox1();
return false;
});
$('#button1').on('click', function() {
hideBox1(function() {
showBox2();
});
return false;
});
$('#button2').on('click', function() {
hideBox2(function() {
showBox1();
});
return false;
});

最佳答案

编辑

经过一些测试,我找到了解决该问题的解决方案,但我没有对此行为的解释。我在 box1 或 box2 的每个动画之前调用出队函数。

如果您找到解释,我有兴趣阅读。

代码版本 2

function showBox1() {
$('.box1').each(function(key, value) {
$(this).delay(50 * (key)).fadeIn(200)
});
$('#box1').dequeue();
$('#box1').fadeIn(200);
}
function showBox2() {
$('.box2').each(function(key, value) {
$(this).delay(50 * (key)).fadeIn(200)
});
$('#box2').dequeue();
$('#box2').fadeIn(200);
}
function hideBox1(callback) {
$('.box1').each(function(key, value) {
$(this).delay(50 * (key)).fadeOut(200);
});
$('#box1').dequeue();
$('#box1').delay(50*6).fadeOut(200).delay(50*7, callback);
}
function hideBox2(callback) {
$('.box2').each(function(key, value) {
$(this).delay(50 * (key)).fadeOut(200);
});
$('#box2').dequeue();
$('#box2').delay(50*6).fadeOut(200).delay(50*7, callback);
}



$('#start').click(function() {
showBox1();
return false;
});
$('#button1').click(function() {
hideBox1(showBox2);
return false;
});
$('#button2').click(function() {
hideBox2(showBox1);
return false;
});

Jsfiddle 示例 here 。如果你点击一和二太快就会有问题

关于jquery - 第二次调用 fadeIn() 不会执行任何操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12192079/

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