You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用CSS/JavaScript/jQuery实现body背景图平滑淡入加载?

实现body背景图淡入加载的方案

方法一:纯CSS实现

用全屏伪元素承载背景图,初始完全透明,通过CSS动画实现2秒淡入,body默认设为白色背景作为初始状态,完全不影响页面内容。

body {
  margin: 0;
  background-color: #fff; /* 初始白色背景 */
}

/* 全屏背景层,放在内容下方 */
body::before {
  content: "";
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: url(../img/back350llll.jpg) repeat;
  background-size: cover; /* 按需调整背景尺寸属性 */
  z-index: -1;
  opacity: 0;
  animation: fadeInBg 2s ease-in forwards; /* 2秒淡入,结束后保持最终状态 */
}

@keyframes fadeInBg {
  to {
    opacity: 1;
  }
}

你可以根据需求修改background-size、repeat等属性,和原来的设置完全兼容。

方法二:JavaScript/jQuery实现

如果要确保背景图加载完成后再开始淡入(避免出现淡入到一半图片才显示的情况),用JS预加载图片更稳妥。

原生JS版本

body {
  margin: 0;
  background-color: #fff;
  background: url(../img/back350llll.jpg) repeat;
  background-size: cover;
  opacity: 0;
  transition: opacity 2s ease-in;
}
// 预加载背景图
const bgImage = new Image();
bgImage.src = "../img/back350llll.jpg";

// 图片加载完成后触发淡入
bgImage.onload = function() {
  document.body.style.opacity = "1";
};

jQuery版本

body {
  margin: 0;
  background-color: #fff;
  background: url(../img/back350llll.jpg) repeat;
  background-size: cover;
  opacity: 0;
}
// 等页面所有资源加载完成后执行淡入
$(window).load(function() {
  $('body').fadeTo(2000, 1); // 2000毫秒=2秒,淡入到完全不透明
});

内容的提问来源于stack exchange,提问作者Leandro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 08:45:29