2013-03-15 80 views
3

我正在使用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和滑動似乎在同一時間正在發生。

+1

要回答你的問題: 如果你的DOM是大,可以最低限度地提前做了查找的時間減少延遲「是」 – 2013-03-15 01:01:35

+0

只是沒有動畫它們的回調應該讓他們在同一運行時間? – 2013-03-15 01:04:36

+0

你使用的是舊版IE嗎? – vol7ron 2013-03-15 01:07:46

回答

2

,如果你不喜歡它,他們必須同時運行:

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

$('#element2').animate({ 
    opacity: 0, 
    }, 1000, function() { 
     // complete 
}); 
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動畫

+0

我不明白這是如何不同於我發佈的代碼。我無法說出任何區別。 – IMUXIxD 2013-03-15 01:21:03

+0

我指定的時間1000 – PSR 2013-03-15 01:21:37

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(); 

     }); 
    }); 
0

如果它會是更好設置一個小提琴。

$(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 
    }); 
});