[英]jQuery/CSS add fade-in and fade out effect
我做了3个CSS类,如下所示:
.modal {
display: none;
position: fixed;
z-index: 1000;
top: 0;
left: 0;
height: 100%;
width: 100%;
background: rgba( 255, 255, 255, .8 ) url('') 50% 50% no-repeat;
background-image: url('../../images/gears.svg');
}
body.loading {
overflow: hidden;
}
body.loading .modal {
display: block;
}
发生jQuery事件onclick后,我将显示给最终用户,以便用户知道发生了什么。
我在这里不喜欢的是,加载非常强制地出现,在出现和消失时过渡都没有平滑度。 我向用户展示的装载工具是:
$body = $("body");
然后显示它:
$body.addClass("loading");
或删除它:
$body.removeClass("loading");
如何使用jquery或CSS添加平滑的加载齿轮出现和消失的过渡,以便动画看起来更友好?
有人可以帮我吗 ?
我将删除display: none
然后再不使用CSS过渡在容器中淡入淡出。 您也可以只将类添加到模式中,而不是添加到主体中。
.loader {
visibility: hidden;
opacity: 0;
}
.loader.visible {
opacity: 1;
visibility: visible;
transition: opacity .25s ease-in-out;
-moz-transition: opacity .25s ease-in-out;
-webkit-transition: opacity .25s ease-in-out;
}
除了使用具有opacity
或visibility
CSS过渡之外,您还可以仅使用jQuery显示/隐藏加载程序。 我会推荐Zach的CSS解决方案,因为它更简单,性能更高,但这是另一种选择。
.modal {
display: none;
position: fixed;
z-index: 1000;
top: 0;
left: 0;
height: 100%;
width: 100%;
background: rgba( 255, 255, 255, .8 ) url('') 50% 50% no-repeat;
background-image: url('../../images/gears.svg');
}
body.loading {
overflow: hidden;
}
$('body').addClass('loading');
/* fade loader in */
$('.modal').fadeIn('fast');
/* fade loader out */
$('.modal').fadeOut('fast', function() {
$('body').removeClass('loading');
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.