【发布时间】:2012-02-10 03:36:37
【问题描述】:
我在我的网站(为 iOS 开发)上使用的动画使用 jQ 进行了简单的淡入和淡出:
$('.loading').fadeOut();
但是,iPhone 在运行这些动画时会不稳定。然而,CSS3 动画效果更流畅。如何使用 jQuery 淡出 div 但使用 CSS3 动画而不是 jQ 动画?
【问题讨论】:
我在我的网站(为 iOS 开发)上使用的动画使用 jQ 进行了简单的淡入和淡出:
$('.loading').fadeOut();
但是,iPhone 在运行这些动画时会不稳定。然而,CSS3 动画效果更流畅。如何使用 jQuery 淡出 div 但使用 CSS3 动画而不是 jQ 动画?
【问题讨论】:
这更容易,但是一旦淡出它就不会“消失”,因此一旦过渡完成,页面就不会重排。相当于jQuery的fadeTo(),而不是fadeOut();
淡出
$('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;
【讨论】:
$('.loading').delay(500).css({?
setTimeout(function(){$('selector').css()}, 500)
$('.loading').css.queue(function(){? 另外,为什么你更喜欢使用基本的js超时?
使用 CSS 动画创建一个类并在需要时附加它 -
$(".loading").addClass("fadeout").delay(2000).queue(function() {
$(this).css('display', 'none');
});
【讨论】:
opacity:1 代替.fadein 而不是.fadeout),它没有。我认为这是因为它需要显示块然后淡入?