gpt4 book ai didi

Jquery fade 在 3 个 div 之间旋转

转载 作者:行者123 更新时间:2023-11-30 23:51:07 25 4
gpt4 key购买 nike

我正在尝试在 3 个 div 之间淡入淡出旋转,当前代码:

$(window).load(function(){
var div1 = $("#apDiv1");
var div2 = $("#apDiv2");

function fade() {
div1.stop(true, true).fadeIn(2000);
div2.stop(true, true).fadeOut(2000, function() {
// swap in/out
var temp = div1;
div1 = div2;
div2 = temp;
// start over again
setTimeout(fade, 1000);
});
}

// start the process
fade(); })

这对于 2 个 div 效果很好,但是是否可以在循环中插入第三个 div ?

我尝试过这样:

   $(window).load(function(){
var div1 = $("#apDiv1");
var div2 = $("#apDiv2");
var div3 = $("#apDiv3");

function fade() {
div1.stop(true, true).fadeIn(2000);
div2.stop(true, true).fadeOut(2000);
div3.stop(true, true).fadeIn(2000);
div1.stop(true, true).fadeOut(2000, function() {
// swap in/out
var
temp = div1
div1 = div2;
div2 = div3;
div3 = div1;
div1 = temp
// start over again
setTimeout(fade, 1000);
});
}

// start the process
fade(); })

但这只是跳过它/根本不起作用。

最佳答案

公平地说,如果您要使用两个以上的 div,我会重写该函数,这样它就可以执行任意数量的操作,而不仅仅是三个 div

我假设你的 div 看起来像这样(我给了它们一个 fade 类,起始的 div 具有一个 current 类)

<div id="apDiv1" class="fade current"></div>
<div id="apDiv2" class="fade"></div>
<div id="apDiv3" class="fade"></div>

鉴于此结构,您可以在 window.load 中使用以下 jquery:

var divs = $('.fade');

function fade() {
var current = $('.current');
var currentIndex = divs.index(current),
nextIndex = currentIndex + 1;

if (nextIndex >= divs.length) {
nextIndex = 0;
}

var next = divs.eq(nextIndex);

next.stop().fadeIn(2000, function() {
$(this).addClass('current');
});

current.stop().fadeOut(2000, function() {
$(this).removeClass('current');
setTimeout(fade, 2500);
});
}

fade();

Example

关于Jquery fade 在 3 个 div 之间旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16648084/

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