Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
交错jQuery动画_Jquery_Queue_Jquery Animate_Sequence - Fatal编程技术网

交错jQuery动画

交错jQuery动画,jquery,queue,jquery-animate,sequence,Jquery,Queue,Jquery Animate,Sequence,我想在jQuery1.3中设置一系列项目的动画,下一个项目从第一个动画的一半开始。换句话说,我想要半队列效果。我试图使用下面的代码,但它不起作用。有人有什么想法吗 $("h3").click(function(){ $(".projectItem").each(function (i) { if (i > 0){ setTimeout ("", 500); } $(this).animate({"o

我想在jQuery1.3中设置一系列项目的动画,下一个项目从第一个动画的一半开始。换句话说,我想要半队列效果。我试图使用下面的代码,但它不起作用。有人有什么想法吗

    $("h3").click(function(){
      $(".projectItem").each(function (i) {
        if (i > 0){
            setTimeout ("", 500);
        }
        $(this).animate({"opacity": 0, "duration": 1000});
      });
    });
PS:我尝试使用各种“空闲”或“暂停”jquery插件,但我怀疑使用的技术是在jquery 1.3之前


PPS:提前感谢您的帮助:)

我认为将动画分解为两个部分(从不透明度1到0.5,从0.5到0)并使用常规队列(如果可能的话)更简单

如果我们从不透明度1开始,则此代码为:

$("h3").click(function(){
  $(".projectItem").each(function (i) {
    $(this).animate({"opacity": 0.5, "duration": 500}, function(){
      //... put here something in the half way ...
      $(this).animate({"opacity": 0, "duration": 500}); 
    });
  });
});

您可以尝试以下方法:

$("h3").click(function(){
  $(".projectItem").each(function (i) {
    // store the item around for use in the 'timeout' function
    var $item = $(this); 
    // execute this function sometime later:
    setTimeout(function() { 
      $item.animate({"opacity": 0}, 1000);
    }, 500*i);
    // each element should animate half a second after the last one.
  });
});
这里的总体思路是使用您的
.projectItem
列表-将动画从开始延迟到每个项目500毫秒。第一项(
i=0
)将有0毫秒的延迟,并在下一个事件循环期间立即执行(几乎)。每个项目之前都会延迟500毫秒,并且由于动画持续1000毫秒,它将在最后一个项目动画的一半左右开始。

您也可以执行$item.delay(500*i)。动画(…)而不是使用setTimeout。回答得好!