4

我正在使用 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

4 回答 4

2

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

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

$('#element2').animate({
    opacity: 0,
    }, 1000, function() {
        // complete
});
于 2013-03-15T01:13:45.173 回答
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

于 2013-03-15T01:16:45.763 回答
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();

       });
  });
于 2013-03-15T01:30:45.163 回答
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
    });
});
于 2013-03-15T01:30:45.647 回答