una toda que poner pantalla ocupe imagen fondo div con completa como ajustar javascript jquery html css fiddle

javascript - toda - imagen de fondo html5



Cómo retrasar la visualización de la imagen de fondo en un div (8)

Aquí está mi fiddle.


Solo quiero que la " background-image: " en el css se cargue completamente y se muestre después de 3 segundos con un efecto de fundido rápido, hasta que todo el div debe estar en color negro.
Como es posible en css o javascript .

.initials { position:absolute; background:black; background-image: url("http://static.tumblr.com/lxn1yld/Hnxnxaqya/space.gif"); color:white; margin-top:20px; padding-top:20px; padding-bottom:20px; width:60px; text-align:center; margin-left:20px; font-size:17px; letter-spacing:5px; box-shadow:0px 2px 3px rgba(0,0,0,.15); overflow: hidden; white-space: nowrap; }

<div class="initials">A</div>


Aquí está la solución, la imagen de fondo aparecerá después de unos segundos.

Demo

Html

<div class="initials">A</div>

Css

.initials { position:absolute; background-color:#000; color:white; margin-top:20px; padding-top:20px; padding-bottom:20px; width:60px; text-align:center; margin-left:20px; font-size:17px; letter-spacing:5px; box-shadow:0px 2px 3px rgba(0,0,0,.15); overflow: hidden; white-space: nowrap; }

Guión

$(document).ready(function() { setTimeout(function(){ $(''.initials'').css(''background-image'', ''url("http://static.tumblr.com/lxn1yld/Hnxnxaqya/space.gif")''); }, 3000); });


Con algunos cambios menores, podría haber logrado lo que quieres solo con CSS3. Compruebe el violín: http://jsfiddle.net/w11r4o3u/

CSS:

.initials { position:relative; background:black; color:white; margin-top:20px; padding-top:20px; padding-bottom:20px; width:60px; text-align:center; margin-left:20px; font-size:17px; letter-spacing:5px; box-shadow:0px 2px 3px rgba(0,0,0,.15); overflow: hidden; white-space: nowrap; } .initials .text { position: relative; } @-webkit-keyframes test { 0% { opacity: 0; } 100% { opacity: 1 } } .initials:before{ content: ""; background-image: url("http://static.tumblr.com/lxn1yld/Hnxnxaqya/space.gif"); position: absolute; top: 0; left: 0; width: 100%; height: 100%; -webkit-animation-name: test; -webkit-animation-duration: 3s; -webkit-animation-fill-mode: forwards; -webkit-animation-timing-function: ease-out; }

HTML:

<div class="initials"><div class="text">A</div></div>

Editado :

Ahora la animación comienza después de 3 segundos y tarda .3s en completarse. Aquí está el violín: http://jsfiddle.net/w11r4o3u/1/

  • Para ajustar la "velocidad" que ocurre con fadeIn, edite -webkit-animation-duration: .3s;

  • Si desea ajustar el "retraso" de la animación para comenzar, edite -webkit-animation-delay: 3s;


JQuery

$(''.initials'').css(''background-image'',''url(http://static.tumblr.com/lxn1yld/Hnxnxaqya/space.gif)''); $(''.initials'').fadeIn(3000);


Otra opción sería tener una clase separada y asignar ese css a esa clase. Chech este fiddle

Primero configura un método en document.ready:

$( document ).ready(function() { var changeClass = function() { $(".initials").addClass("with-image"); } setTimeout(changeClass, 3000); });

Luego en tu css cambias las iniciales a:

.initials { position:absolute; background:black; background-COLOR: black; ...

Y añadir:

.with-image { background-color:none !important; background-image: url("http://static.tumblr.com/lxn1yld/Hnxnxaqya/space.gif"); }


Puede crear un div posicionado absoluto con la propiedad de imagen de fondo y luego usar animate.css para agregar una animación sin tener que crear los fotogramas clave.

http://jsfiddle.net/n9wd4ver/5/

.initials { width: 100%; height: 100%; } .initials.initials-text { padding:20px 0px; position: relative; z-index: 2; } .initials.initials-background { position: absolute; background-image: url("http://static.tumblr.com/lxn1yld/Hnxnxaqya/space.gif"); -webkit-animation-delay: 3s; -moz-animation-delay: 3s; -o-animation-delay: 3s; animation-delay: 3s; z-index: 1; } .initials-container { height: 100%; margin-top:20px; margin-left:20px; position:relative; background:black; color:white; width:60px; text-align:center; font-size:17px; letter-spacing:5px; box-shadow:0px 2px 3px rgba(0,0,0,.15); overflow: hidden; white-space: nowrap; }

HTML:

<div class="initials-container"> <div class="initials initials-background animated fadeIn"></div> <div class="initials initials-text">A</div> </div>

EDITAR: OP preguntó en un comentario cómo verificar si la imagen se ha cargado. Supongo que no quiere usar jQuery, así que puede usar una biblioteca llamada imagesLoaded (que funciona con y sin jQuery) y verificar que la imagen se cargue de esta manera:

http://jsfiddle.net/n9wd4ver/7/

CSS

.initials { width: 100%; height: 100%; } .initials.initials-text { padding:20px 0px; position: relative; z-index: 2; } #initials-background { position: absolute; background-image: url("http://static.tumblr.com/lxn1yld/Hnxnxaqya/space.gif"); -webkit-animation-delay: 3s; -moz-animation-delay: 3s; -o-animation-delay: 3s; animation-delay: 3s; z-index: 1; opacity: 0; } #initials-background.animated { opacity: 1; } .initials-container { margin-top:20px; margin-left:20px; height: 100%; position:relative; background:black; color:white; width:60px; text-align:center; font-size:17px; letter-spacing:5px; box-shadow:0px 2px 3px rgba(0,0,0,.15); overflow: hidden; white-space: nowrap; }

HTML

<div class="initials-container"> <div id="initials-background" class="initials fadeIn"> </div> <div class="initials initials-text"> A </div> </div>

Javascript

imagesLoaded( ''#initials-background'', { background: true }, function() { console.log("image loaded"); var d=document.getElementById("initials-background"); d.className=d.className +" animated"; });


Puedes probar algo como esto:

Violín actualizado

Nota: Puede probarlo sustituyendo la URL a la URL de la imagen HD.

function loadImage() { var url = ''http://www.webgranth.com/wp-content/uploads/2013/04/Ceric6.gif''; var img = $("<img />").attr(''src'', url) .on(''load'', function() { $(".test").append(img).fadeIn(400); }); } (function() { setTimeout(function() { $(".bgImage").fadeIn(400); }, 3000); loadImage() })()

.content { z-index: 1; position: relative; margin-top: 20px; text-align: center } .initials { position: fixed; background: black; color: white; width: 60px; height: 60px; margin-top: 20px; text-align: center; margin-left: 20px; font-size: 17px; letter-spacing: 5px; box-shadow: 0px 2px 3px rgba(0, 0, 0, .15); overflow: hidden; white-space: nowrap; } .bgImage { background-image: url("http://static.tumblr.com/lxn1yld/Hnxnxaqya/space.gif"); width: 100%; height: 60px; position: absolute; display: none; z-index: 0; } .test { display: none; }

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <div class="initials"> <div class="bgImage"></div> <div class="content">A</div> </div> <div class="test"></div>

Referencia - Cargar imágenes de forma asíncrona con jQuery .


Tal vez esto ... el fundido es complicado, aunque AFAIK no puedes atenuar la propiedad de imagen de fondo

setTimeout(function(){ $(''.initials'').css(''background-image'', ''url("http://static.tumblr.com/lxn1yld/Hnxnxaqya/space.gif")''); }, 3000)

Otra opción es dividir el HTML en 3 secciones, las letras con el índice z más alto, luego la capa negra sobre la capa de estrellas ... luego desvanecer la capa negra


.initials { position:absolute; background:black; background-image: url("http://static.tumblr.com/lxn1yld/Hnxnxaqya/space.gif"); color:white; margin-top:20px; padding-top:20px; padding-bottom:20px; width:60px; text-align:center; margin-left:20px; font-size:17px; letter-spacing:5px; box-shadow:0px 2px 3px rgba(0,0,0,.15); overflow: hidden; white-space: nowrap; }

<div class="initials">A</div>