Foros del Web » Programando para Internet » Javascript »

script imagen

Estas en el tema de script imagen en el foro de Javascript en Foros del Web. hola! a ver si alguien me puede ayudar, tengo una pagina con una imagen de fondo que está fija y no se puede repetir, ademas ...
  #1 (permalink)  
Antiguo 11/11/2002, 06:22
 
Fecha de Ingreso: noviembre-2002
Mensajes: 224
Antigüedad: 21 años, 5 meses
Puntos: 1
script imagen

hola! a ver si alguien me puede ayudar, tengo una pagina con una imagen de fondo que está fija y no se puede repetir, ademas el color de fondo es negro, el caso es que necesito que cada vez que se haga onclick en un enlace de la pagina se cambie la imagen de fondo. HE puesto esto, no creo que tenga fallo pues el script funciona quitando el estilo del body en css y poniendo background="llongueras.jpg" en el <body> .¿Son la propiedad fixed y no-repeat el problema?. El codigo es el siguiente:

<html><head><title></title>
<style type="text/css">
BODY {background: black url(llongueras.jpg) no-repeat fixed left bottom;}
</style>
<script type="text/javascript">
function cambiarbg(bg)
{
document.body.background=bg
}
</script>
</HEAD>
<body>
<a onclick="cambiarbg('guapo2.jpg')" target="contenidos" href="biografia.html">Biografía</a>
</body>
</html>

Me podeis explicar que es lo que falla?? POr favor es algo urgente y no encuentro respuesta en ningun sitio...
  #2 (permalink)  
Antiguo 11/11/2002, 13:35
Avatar de Beakdan  
Fecha de Ingreso: diciembre-2001
Ubicación: Monterrey, Nuevo León
Mensajes: 433
Antigüedad: 22 años, 4 meses
Puntos: 7
Debspain:
Bueno, el problema es que estás usando la sintaxis incorrecta.
Aunque a primera vista, parece que "document.body.background=bg" debiera funcionar, tienes tres errores.
Me parece que estás cambiando los estilos para IE, deberías acceder al objeto así
Código:
document.body.style.background
Y aquí el segundo error: la variable "bg" tiene un string que representa la imagen. Pero en tu declaración de estilo no pones esta string así nada más, sino que la pones dentro de "url()". Debes conservar esa sintaxis.
Código:
//El parametro de background es una string, así que
//concatenamos la variable para obtener el parámetro correcto
document.body.style.background = "url(" + bg + ")";
Y aunque lo anterior es sintacticamente correcto, te producirá un comportamiento no deseado, ya que background espera cambiar 5 propiedades. Al mandarle sólo uno, reseteará las demás.
Por lo tanto, debería quedar así, para mantener el estilo que definiste:
Código:
document.body.style.background: "black url('" + bg +"') no-repeat fixed left bottom";
O mejor aún sólo cambia la imagen con "backgrundImage"
Código:
document.body.style.backgroundImage = "url(" + bg + ")";
Espero que te sirva esta explicación. Saludos.
  #3 (permalink)  
Antiguo 11/11/2002, 13:50
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Sí señor

Muy bueno!

estupenda explicación, Beakdan.
Lo estuve peleando hace unas horas y fuí incapaz de dar con la forma adecuada y me había quedado toda mosqueada


Gracias por una excelente respuesta

Un saludo

Helena
  #4 (permalink)  
Antiguo 11/11/2002, 15:34
Avatar de Beakdan  
Fecha de Ingreso: diciembre-2001
Ubicación: Monterrey, Nuevo León
Mensajes: 433
Antigüedad: 22 años, 4 meses
Puntos: 7
Tunait:
Es un honor recibir de ti un comentario tan favorable.
Gracias, y un saludo
  #5 (permalink)  
Antiguo 11/11/2002, 17:06
 
Fecha de Ingreso: noviembre-2002
Mensajes: 224
Antigüedad: 21 años, 5 meses
Puntos: 1
mil gracias !!! funciona genial de las dos formas.... y tienes razon fui un poco estupida al no pensar en eso... xD pero bueno para eso es normal.. todos somos novatos al principio.. no? Lo dicho muchas gracias!!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:52.