同时运行两个jQuery函数

时间:2013-03-15 00:59:13

标签: javascript jquery

我正在使用jQuery向下滑动某些内容并将其他内容淡出,但在测试时,我注意到滑动发生后褪色显得太长。 换句话说,它有足够的滞后性。

为了使自己清楚,我滑动一个并且褪色的这两个项目是不同的元素,我不能使用链接。

有没有办法让这些功能同时或更近距离运行,以便它们看起来同时运行?

这是我正在使用的jQuery代码:

$(document).ready(function(){
    $('#trigger').click( function(){         
        $(this).animate({ opacity: 0.0 });        // fade
        $('#carousel').animate({ top: '100px' }); // slide
        $('#pullrefresh').css('top', '-490px');   // line 5
        $('#detector').hide();                    // line 6
    });
});

褪色和幻灯片在不同的时间发生,第5行和幻灯片似乎同时发生。

4 个答案:

答案 0 :(得分:2)

如果你这样做,它们应该一起运行:

$('#element1').animate({
    opacity: 0.25,
    }, 1000, function() {
        // complete
});

$('#element2').animate({
    opacity: 0,
    }, 1000, function() {
        // complete
});

答案 1 :(得分:1)

试试这个

 $(document).ready(function(){
        $('#trigger').click( function(){         
            $(this).animate({ opacity: 0.0 },1000);        // fade
            $('#carousel').animate({ top: '100px' }); // slide
            $('#pullrefresh').css('top', '-490px');   // line 5
            $('#detector').hide();                    // line 6
        });
    });

指定动画

的时间1000

答案 2 :(得分:0)

   $(document).ready(function(){

       $('#trigger').click( function(){

           $.Deferred(function(dfr) {

              dfr.pipe(function() {
                  return  $(this).animate({ opacity: 0.0 }); // fade
              }).
              pipe(function() {
                  return $('#carousel').animate({ top: '100px' }); // slide
              })
              pipe(function() {
                  return $('#pullrefresh').css('top', '-490px'); // line 5
              }).
              pipe(function() {
                  return $('#detector').hide(); // line 6
              });

          }).resolve();

       });
  });

答案 3 :(得分:0)

如果你设置一个小提琴,那就更好了。 如果你的DOM很大,你可以通过提前查找来最小化减少延迟:

$(document).ready(function(){
    $('#trigger').click( function(){
        var vars = { $this        : $(this),
                     $carousel    : $('#carousel'),
                     $pullrefresh : $('#pullrefresh'),
                     $detector    : $('#detector')
                   };

        vars.$this.animate({ opacity: 0.0 },1000);  // fade
        vars.$carousel.animate({ top: '100px' });   // slide
        vars.$pullrefresh.css('top', '-490px');     // line 5
        vars.$detector.hide();                      // line 6
    });
});