Javascript fadeIn()延迟()和fadeOut()之间的时间差

Javascript fadeIn()延迟()和fadeOut()之间的时间差,javascript,jquery,Javascript,Jquery,我试图计算从命令行(3)开始和结束的时间差,但看起来我错了,因为第(7)行显示为零。我希望它显示6500(1500+3500+1500)。 请帮帮我 sd = new Date(); sdm = sd.getMilliseconds(); $(imgs).eq(i).fadeIn(1500).delay(3500).fadeOut(1500); ed = new Date(); edm = ed.getMilliseconds(); df = edm - sdm; document.getE

我试图计算从命令行(3)开始和结束的时间差,但看起来我错了,因为第(7)行显示为零。我希望它显示6500(1500+3500+1500)。 请帮帮我

sd = new Date(); 
sdm = sd.getMilliseconds();
$(imgs).eq(i).fadeIn(1500).delay(3500).fadeOut(1500);
ed = new Date(); 
edm = ed.getMilliseconds();
df = edm - sdm;
document.getElementById('df').innerHTML = df;
我提出这个问题的原因是,我正在写一个幻灯片(非常简单),它没有正确地按顺序显示图像,因为它从一个跳到另一个

这是我的HTML和JS

    $(document).ready(
      function() {

            var i=0;
            var imgs = $('#images ul').children();
            var j = imgs.length;

            setInterval(function(){ runIt(); }, 6500);

            function runIt() {
                i = i + 1;
                if (i == j) { i=0;}

                $(imgs).eq(i).fadeIn(1500).delay(3500).fadeOut(1500);
            }

    }); 

<div id="slider">
    <ul>
        <li><img src="images/slider/s1.jpg" /></li>
        <li><img src="images/slider/s2.jpg" /></li>
        <li><img src="images/slider/s3.jpg" /></li>
        <li><img src="images/slider/s4.jpg" /></li>
    </ul>   
</div>
$(文档)。准备好了吗(
函数(){
var i=0;
var imgs=$('#images ul').children();
var j=imgs.长度;
setInterval(函数(){runIt();},6500);
函数runIt(){
i=i+1;
如果(i==j){i=0;}
$(imgs).eq(i).fadeIn(1500).延迟(3500).衰减(1500);
}
}); 

谢谢。

调用jQuery中的动画函数是异步的。您需要使用回调函数,如下所示:

$(element).fadeOut(delay,
    function() {
        // callback action
    }
);
然而,这不会像预期的那样起作用。GetMillicles返回自第二个开始以来已过的毫秒数,例如,如果当前时间为20:18:20.430,则返回430。您希望改用getTime方法。它返回自事件发生以来的毫秒数

由于您使用的是jQuery,而不是document.getElementById'ing,因此可以使用更加简洁的
$('#id').html('…')。这就给我们留下了:

sd = new Date(); 
sdm = sd.getTime();
$(imgs).eq(i).fadeIn(1500).delay(3500).fadeOut(1500,
    function() {
        ed = new Date(); 
        edm = ed.getTime();
        df = edm - sdm;
        $('#df').html(df);
    }
);
你的幻灯片也可能因此而混乱

关于第二个代码片段的一个小细节:in
var imgs=$(“#images ul').children()
,则
.children()
方法返回一个jQuery对象。您不必再次运行
$()
,但如果您认为这更清楚,您可以这样做

imgs.eq(i).fadeIn(1500).delay(3500).fadeOut(1500);

我想我找到了答案。它在IE和Chrome中工作。我没有办理登机手续

$(document).ready(
  function() {

        var i=0;
        var imgs = $('#images ul').children();
        var j = imgs.length;

        setInterval(function(){ runIt(); }, 5000);

        function runIt() {
            $(imgs).eq(i).fadeOut(1500)
            i = i + 1;
            if (i == j) { i=0;}
            $(imgs).eq(i).fadeIn(1500);
        }

}); 
谢谢你的意见和建议。这样,它就不会被卡住,也不会保存图像。 我看着菲利克斯·克林的小提琴,画面消失了,下一幅画面出现了。我希望下一个图像融入其中。
再次感谢

您是否阅读了这些方法的jQuery文档?如果没有,你应该先这样做。你似乎在问两个不同的问题,只有一个问题。我提出第一个问题的原因是因为第二个问题。为了确定第二个问题中的问题,我写了第一个问题。我相信阅读并将回答您的所有问题。我确实阅读了上述文档,但我没有发现任何关于计时和执行顺序的内容……您的代码对我来说似乎很好:。你能更好地解释这个问题吗?