javascript - 一种在加载时淡入背景的方法?

标签 javascript jquery background

我正在做一个网站设计,我需要一种方法让 body 标签的背景图片在完全加载完成后淡入淡出(可能会暂停 500 毫秒)。

如果您看到 August的网站设计你会看到背景淡入;但是,这是通过 Flash 背景完成的。有什么方法可以用 jQuery 或 JavaScript 做到这一点吗?


2010 年 9 月 19 日更新:

所以对于那些来自谷歌的人(这是目前“加载时淡入背景”的第一结果,我只是想我会为大家做一个更清晰的实现示例。

添加 <div id="backgroundfade"></div>到页脚某处的代码(如果您不想让 DOM 变得困惑,也可以通过 JavaScript 附加它。

这样的风格 -

#backgroundfade {
  position: fixed;
  background: #FFF /* whatever color your background is */
  width: 100%;
  height: 100%;
  z-index: -2;
}

然后将其添加到您的 JavaScript 脚本文件(需要 jQuery):

$(document).ready(function() {
    $('#backgroundfade').fadeOut(1000);
});

这具有淡出 #backgroundfade 的效果元素(“覆盖”您实际背景的框)在 DOM 完成后 1 秒内输出。

最佳答案

是的:

不要为正文提供背景图片。然后准备一个带有淡入淡出效果的 GIF 动画。在 JavaScript 中:

document.onload = function () {
  window.setTimeout (function () {
    document.getElementsByTagName ("body")[0].style.backgroundImage = "url(/path/to/image.gif)";
  }, 500);
};

在 jQuery 中会是

$(function () {
  $('body').css ('backgroundImage', 'url(/path/...)');
});

如果您不想使用动画 GIF 技巧,但需要对 JPEG 或 PNG 的支持,那就太麻烦了。您必须创建一个占位符 <div/> , 将其定位到正确的位置并调整不透明度。您还必须检测背景图像何时加载,这样您就不会在慢速连接上愚蠢地跳转。一个无效的例子:

var x = new Image();
x.onload = function () {
  /*
    create div here and set it's background image to
    the same value as 'src' in the next line.
    Then, set div.style.opacity = 0; (best, when the
    div is created) and let it fade in (with jQuery
    or window.setInterval).
  */ };
x.src = "/path/to/img.jpg";

干杯,

关于javascript - 一种在加载时淡入背景的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1055414/

相关文章:

javascript - React - 过滤商店中的对象会导致递归/无限循环

javascript - 删除在一个下拉列表字段中选择的选项,并且不显示在该行中存在的其他下拉列表中不工作 - jquery

javascript - JQuery 中有什么方法可以更改图像的一部分吗?

css - 将鼠标悬停在任一元素上时更改图像和背景颜色

javascript - 如何在没有内容安全策略错误的情况下在内容脚本中使用 Google +1?

javascript - instanceof 在 JavaScript 中如何工作?

javascript - 使用 d3js 的特殊字符

窗口/选项卡之间的 javascript/jquery 内存空间

iphone - 如何在后台中断后恢复 AVAudioPlayer

css - 无法通过水平滚动制作背景图像(线)跨越屏幕宽度