Способ раствориться в фоновом режиме при нагрузке?



Я работаю над дизайном сайта, и мне нужен способ исчезать в фоновом изображении тега body, когда он полностью загружен (возможно, затем пауза в 500 мс).



Если вы видите дизайн сайта августа, вы увидите, что фон исчезает; однако это делается с фоном вспышки. Есть ли способ сделать это с помощью jQuery или JavaScript?





обновление 9/19/2010:



Итак, для тех, кто приходит из Google (это в настоящее время результат номер один для "fade in background on load", я просто подумал, что сделаю более ясный пример реализации для всех.



Добавьте <div id="backgroundfade"></div> в ваш код где-нибудь в нижнем колонтитуле (вы также можете добавить это через JavaScript, если не хотите, чтобы ваш DOM был загроможден.



Стиль как таковой -



#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 (поле, "закрывающее" ваш фактический фон) . через 1 секунду после завершения DOM.

539   6  

6 ответов:

Я сам этого не делал, но это может сработать.

Вы могли бы, я думаю, настроить фоновое изображение, а затем замаскировать его большим старым div, который имеет черный фон. Затем поиграйте с непрозрачностью этого div, чтобы создать эффект затухания. Этот черный див должен был бы покрывать все тело.

Да:

Не давайте телу фонового изображения. Затем подготовьте анимированный 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";

Ура,

Я вижу эту ссылку,

Http://fragged.org/dev/changing-and-fading-body-background-image.php

Идея такова:

Примените свой фон к div, которому присвоен низкий z-индекс, абсолютное позиционирование и фон (думайте об этом как о модальном обратном / обратном). затем создайте свой контент в другой слой поверх него с прозрачным фоном....

Теперь вы можете ссылаться на нижний слой по идентификатору и изменять непрозрачность.

Все, что ему нужно-это стек / массив фоновых магов для применения в качестве свойства к слою...

Я не уверен, что есть способ заставить фоновое изображение исчезнуть, но один из способов, которым вы можете это сделать,-это использовать абсолютно позиционированное изображение с отрицательным z-индексом. Затем вы можете использовать jquery, чтобы исчезнуть в изображении. Этот подход может быть сложнее, если вам нужно, чтобы фоновое изображение было выложено плиткой или повторено.

HTML:

<body style="z-index: -2">
<img src="backgroundImage.jpg" id="backgroundImage" style="position: absolute; top: 0px; left: 0px; z-index: -1; display: none;">
<!-- The rest of your HTML here -->
</body>

JQuery:

$(window).load(function() {

    $("#backgroundImage").fadeIn("slow");
});

Почему бы не использовать готовый скрипт: Этот заставляет фоновое изображение исчезать при загрузке страницы.

Он также соответствует размеру окна, но это можно отключить, если нет необходимости.

Мое решение:

HTML:

<img id='myImg' />

CSS:

#myImg{
    opacity: 0;              
    -moz-opacity: 0;         
    -khtml-opacity: 0;       
    filter: alpha(opacity=0); 
}

JS:

var img = document.getElementById('myImg'),
    steps = 30,
    appearTime = 1000;

img.src = "/path/to/img.gif";

img.onload = function(){
    for(i=0; i<=1; i+=(1/steps)){
        setTimeout((function(x){
            return function(){
                img.style.opacity = x;
                img.style.MozOpacity = x;
                img.style.KhtmlOpacity = x;
                img.style.filter = "alpha(opacity=" + (x*100) + ")";                    
            };
        })(i), i*appearTime);

    };
};

Comments

    Ничего не найдено.