0

这是我第一次使用 jQuery。我正在加载一个大的背景图像,当它被加载时,我会在三秒钟内将其淡化。该脚本适用于 Firefox 和 Chrome,但不适用于 IE(当然!)。是否有任何故障安全方法可以让它在 IE 中神奇地工作,是否有一些更漂亮的编写方式?

<div class="bgImage" />

$(document).ready(function () {
  // add bg image and fade
  var _image = new Image();
  _image.id = 'newImageId';
  _image.src = "./css/background.jpg";

  $(_image).load(function () {
    $('div.bgImage').css('background-image', 'url(./css/background.jpg)');
    $('div.bgImage').fadeTo(3000, 1);
  });
});
4

3 回答 3

10

采用

 $('div.bgImage').animate({ opacity: 1 }, { duration: 3000 });

假设你开始style="opacity: 0;"

于 2012-09-01T13:11:12.657 回答
2

HTML

<body>
  <div class="bgImage"></div>
  ...
</body>

CSS

.bgImage {
  position: fixed;
  top: 0; left: 0;
  right: 0; bottom: 0;
  z-index: 1;
  display: none;
}

Javascript

$(function() {
  var src = '../css/background.jpg';
  var ele = $('.bgImage');
  var img = $('<img>', {
    src: src
  }).hide().appendTo(ele).load(function() {
    $(this).remove();
    ele.css('background-image', 'url('+src+')').fadeIn(3000);
  });
});
于 2012-09-01T13:56:21.587 回答
0

为此,您不需要编写那么多行代码,这个简单的代码将为您工作...

$(document).load(function () {
  $('div.bgImage').css('background-image', 'url(./css/background.jpg)');

  $(document).ready(function () {
    $('div.bgImage').fadeIn(3000);
  });
});
于 2012-09-01T13:06:59.897 回答