gpt4 book ai didi

jquery - 使用 javascript 模数通过 for 循环遍历文本 slider

转载 作者:行者123 更新时间:2023-12-01 08:25:54 24 4
gpt4 key购买 nike

我是 jQuery 和堆栈溢出的新手,所以我会尝试具体说明,但请耐心等待。我正在尝试从头开始创建一个带有关联链接的文本 slider ,使用模数迭代列表并重复。

这是我正在使用的代码:

ul#text { position: relative; margin-bottom: 40px; height: 40px; }
ul#text li { position: absolute; display: none; }
.active { font-weight: bold; }
<ul id="text">
<li id="textBody">Suffering is not a result of physical pain alone. It can be compounded by changes in one's life, and changes in the self. <em>We understand, and we can help.</em></li>
<li id="textFamily">Aggressive assessment of physical symptoms &amp; pain in the body are key to support <em>the best possible quality of life</em>.</li>
<li id="textFunction">Chronic pain &amp; illness may affect your role in your family. We work with you and your family as you confront those changes.</li>
<li id="textPsyche">Chronic pain and illness make even everyday activities challenging. We will help you maintain independence and physical function.</li>
<li id="textSuffering">Changes in the physical body mean changes in the self. We will provide support as you navigate those changes in the psyche.</li>
</ul>
<ul id="vivid_buttons">
<li><a href="#" id="buttonBody">BODY</a></li>
<li><a href="#" id="buttonFamily" class="active">FAMILY</a></li>
<li><a href="#" id="buttonFunction">FUNCTION</a></li>
<li><a href="#" id="buttonPsyche">PSYCHE</a></li>
<li><a href="#" id="buttonSuffering">SUFFERING</a></li>
</ul>
$(document).ready(function () {

function fadeAndMove() {
var nextLi = $("#text > li:nth-child(" + i % 5 + ")");
var nextA = $("#vivid_buttons > li:nth-child(" + i % 5 + ") > a");
nextLi.fadeIn(1000, function () {
$("#vivid_buttons > li > a").removeClass("active");
nextA.addClass("active");
setTimeout(function () {
nextLi.fadeOut(1000);
}, 4000);
});
}

for (i = 1; i < 7; i++) {
fadeAndMove($("#text"));
}
});

用简单的语言来说,我想淡入第一个列表中的一个句子,并突出显示底部列表中的相应链接。然后我希望它淡出并移至下一个项目。

我以为我可以使用模数 (%) 和 for 循环来迭代并创建一个无限循环,但是当我将其放入时,它就像一次执行所有内容,而不是迭代(淡入和淡出)for每个项目。

我知道这很令人困惑,但我希望能得到任何帮助。

最佳答案

摆脱for循环,只需让setTimeout调用fadeAndMove()函数,传递当前索引。

示例: http://jsfiddle.net/drWhE/

$(document).ready(function () {

// cache the LI elements
var $lis = $("#text > li");
var $aLis = $("#vivid_buttons > li");

function fadeAndMove( currentIndex ) {
var nextIndex = (currentIndex + 1) % 5;
var nextLi = $lis.eq( nextIndex );
nextLi.fadeIn(1000, function () {
$aLis.eq( currentIndex ).children('a').removeClass("active");
$aLis.eq( nextIndex ).children('a').addClass("active");
setTimeout(function () {
nextLi.fadeOut(1000, function() {
// Call fadeAndMove() passing nextIndex as the new currentIndex
fadeAndMove( nextIndex );
});
}, 4000);
});
}
// Get it started on index 0
fadeAndMove( 0 );
});

关于jquery - 使用 javascript 模数通过 for 循环遍历文本 slider ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3893765/

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