2012-01-14 115 views
2

,我使用我的网站上(这是为iOS开发)的动画有一个简单的淡入和淡出使用JQ:jQuery调用CSS3淡入淡出动画?

$('.loading').fadeOut(); 

的iPhone,但是,是波涛汹涌的同时运行这些动画。然而,CSS3动画工作更顺畅。我怎样才能淡出div使用jQuery,但使用CSS3动画,而不是jQ的?

回答

5

这种情况很容易,但一旦淡出它不会“消失”,所以页面不会一旦过渡回流做完了。它相当于jQuery的fadeTo(),而不是​​;

淡出

$('selector').css({ 
    "opacity": 0, 
    "pointer-events": "none" 
}); 

淡入

$('selector').css({ 
    "opacity": 1, 
    "pointer-events": "auto" 
}) 

延缓执行与超时

setTimeout(function(){ 
    $('selector').css({ 
    "opacity": 1, 
    "pointer-events": "auto" 
    }) 
},) 

与.delay

$('selector') 
    .delay(2000) 
    .queue(function() { 
     $(this).css({ 
     "opacity": 1, 
     "pointer-events": "auto" 
     }) 
    }); 
延迟执行

但是这可能是通过转换延迟特性在你的CSS做得最好:

-vendor-transition-delay: 2s; 

或者在速记:

-vendor-transition: opacity 200ms ease 2s; 
+0

是否有可能延迟它,例如$('。loading')。delay(500)。 css({'? – Charlie 2012-01-14 01:31:42

+0

')您必须像在Zontan的例子中一样使用队列,但我更喜欢使用直线js超时,例如'setTimeout(function(){$('selector')。css()},') – Duopixel 2012-01-14 01:38:09

+0

队列像这样工作,'$('。loading')。css.queue(function(){?'另外,为什么你更喜欢使用基本的js超时? – Charlie 2012-01-14 03:31:09

6

创建一个类与CSS动画并在需要时将其固定 -

$(".loading").addClass("fadeout").delay(2000).queue(function() { 
    $(this).css('display', 'none'); 
}); 
+0

这是不这样做,虽然最好的办法。虽然它淡出div,但在转换完成后,div后面没有可点击(或可点按)的内容:http://jsfiddle.net/charlescarver/SXFnt/ – Charlie 2012-01-14 00:24:24

+0

@Charlie - 好点,更新后的动画会隐藏元素 – 2012-01-14 00:32:28

+0

我明白为什么会起作用,但它似乎并没有http://jsfiddle.net/charlescarver/SXFnt/1/ – Charlie 2012-01-14 00:36:23