我需要关于jQuery中fadeIn()fadeOut()和delay()的计时的帮助

我需要关于jQuery中fadeIn()fadeOut()和delay()的计时的帮助,jquery,Jquery,这就是我的功能: function homepageRotator() { var numofimgs = $('#backgroundimageholder_home img').length; var index = 0; //run the rotator rotator(); function rotator() { $('#backgroundimageholder_home img').eq(index).fadeIn('1000').delay(3000*

这就是我的功能:

function homepageRotator()
{
    var numofimgs = $('#backgroundimageholder_home img').length;
    var index = 0;
//run the rotator
rotator();

function rotator()
{
    $('#backgroundimageholder_home img').eq(index).fadeIn('1000').delay(3000*3).fadeOut('1000');
    $('#contentcontainer_home ul li').eq(index).fadeIn('1000').delay(3000*3).fadeOut('1000');
    index = index + 1;

    if(index == numofimgs)
    {
        index = 0;
    }

    setTimeout(function() {rotator()},5000)
}
}
所以,我得到的是一个简单的旋转器,但旋转时间似乎不合理。当它第一次加载时,没有一个计时正确,第一个图像出现,停留3秒钟,然后切换。然后下一个消失了,很快就消失了。最后第三个会持续6秒钟,然后显示第一个然后消失。基本上这是非常不合理的,我需要理解为什么

谢谢你的帮助

好的,很抱歉,我应该提供更多信息,下面是关于此的基本html布局:

<div class="backgroundimageholder_home" id="backgroundimageholder_home">
    <?php foreach($front->result() as $row) { ?>
    <img src="images/homepage/<?php echo $row->image; ?>" alt="" class="backgroundimage_home" />
    <?php } ?>
</div>

<div class="contentcontainer_home" id="contentcontainer_home">
    <ul>

        <?php foreach($front->result() as $row) { ?>
        <li>
            <div class="contentcontainer_top_home clearafter" id="contentcontainer_top_home">
                <h2><?php echo $row->name; ?></h2>
                <p>
                    <?php echo $row->text; ?>
                </p>
            </div>

            <div class="contentcontainer_bot_home" id="contentcontainer_bot_home">
                <a href="<?php echo $row->link; ?>" title="">CLICK HERE TO VIEW</a>
            </div>
        </li>
        <?php } ?>

    </ul>
</div>

图像;?>“alt=”“class=“backgroundimage\u home”/
所以基本上我的旋转器旋转脚本,然后它也旋转一些标题,这些标题描述了当时显示的图像。这就是为什么我需要它们同时旋转。我很确定有更好的方法可以做到这一点,但我想不出来。老实说,我真正想做的是在e图片和标题: -淡入图像 -2秒延迟 -淡入字幕 -5秒延迟 -淡出字幕 -淡出图像 重复


但这让我大吃一惊。我几乎无法让它们在没有重叠等的情况下正确旋转。无论如何,一如既往,感谢所有人的帮助。

Javascript是异步的。这在开始使用超时时尤为明显。对
setTimeout()
的调用调用
rotator()
每5秒一次,无论最后一次调用
rotator()
是否已完成

您的
rotator()
本身应该需要11秒才能完成(可能会稍微多一些,因为它需要两次调用)。您应该将超时设置为11秒以上。12秒应足以使其平滑并保持一致。其次,使用
setInterval
。这也会有所帮助。删除
setTimeout
rotator()
函数中的调用,并将其放在对
rotator()的初始调用之后。
(或者取消初始呼叫,只需等待12秒,它也会启动)

编辑:


setInterval的解释

您使用的浏览器是什么?所有浏览器的计时都不稳定吗?您多次查询同一个选择器。为什么?您能提供更多信息吗?例如HTML布局?我发誓我试过了,但它似乎对我不起作用。我认为我使用得不正确或不正确。
setInterval(function() {rotator()},12000);