是的,这实际上非常容易。您可以改为使用 CSS 过渡来进行淡入淡出。
首先,让我们定义一些 CSS:
.preloader {
transition: opacity 0.25s linear; /* when we change the opacity, use these transition settings */
}
.preloader.fade {
opacity: 0; /* when we add the class fade, set the opacity to 0 using the above transition */
}
现在我们只需要fade使用 Javascript 添加类:
window.onload = function() {
var preloader = document.getElementsByClassName('preloader')[0];
preloader.className += ' fade';
setTimeout(function(){
preloader.style.display = 'none';
}, 300);
};
不理解的浏览器transition将设置opacity为0立即,而作为绝对故障保护(例如对于不理解的浏览器opacity),我们为每个人设置一秒后display。none
jsFiddle 展示了这种效果。(显然你的风格会.preloader有所不同。)