Retroceder   Foros del Web > Diseño de Sitios web > (X)HTML

Respuesta
 
Herramientas Desplegado
Antiguo 28-abr-2008, 01:48   #1 (permalink)
Enjuto ha deshabilitado el karma
 
Fecha de Ingreso: marzo-2008
Mensajes: 12
Fondo cambiante

Hola, muy buenas.

Lo primero, cómo no, agradecer vuestra ayuda. (Qué menos que agradecer...).

Ahora, mi duda: Quisiera hacer que el fondo (background) de mi página cambiara aleatoriamente entre una serie seleccionada de fondos, pero no en cada visita, sino sólo alguna vez, a modo de "premio" por visitar. Es decir, mantener un fondo habitual, y que en alguna visita cambie.

...Espero haberme explicado bien...

¿Cómo podría hacerlo?

Saludos.

Última edición por Enjuto; 28-abr-2008 a las 05:29.
Enjuto está desconectado   Responder Citando
Antiguo 28-abr-2008, 13:26   #2 (permalink)
Hitsu ha deshabilitado el karma
 
Fecha de Ingreso: abril-2008
Mensajes: 24
Re: Fondo cambiante

La única forma que le encuentro a este problema es utilizando base de datos, que cuente cuantas veces el usuario se ha conectado desde su misma IP (será difícil que funcione con IP, asi que recomiento una forma de registro via sql, en la cual cuente cuantas veces x usuario se ha conectado y hacer en php algo como:

if($connections >= 50) {
<body background="imagen+50.jpg"...........
} else {
<body background="imagen-50.jpg"............
}

Otra forma de hacerlo sería a base de cookies, pero no es muy confiable ya que las cookies aveces son eliminadas por la misma computadora o por el usuario.
Hitsu está desconectado   Responder Citando
Antiguo 28-abr-2008, 17:08   #3 (permalink)
Enjuto ha deshabilitado el karma
 
Fecha de Ingreso: marzo-2008
Mensajes: 12
Re: Fondo cambiante

Agradezco enormemente la respuesta, pero me gustaría, a ser posible, algo más aleatorio. No necesariamente cada X número de visitas. Que sea más como una sorpresa, ya sea a la visita número 50 o a la segunda.

No sé si pido demasiado... Ciertamente soy un ignorante en estas lides...
Enjuto está desconectado   Responder Citando
Antiguo 28-abr-2008, 19:29   #4 (permalink)
bookmaster tiene algunos puntos positivos de karma
 
Avatar de bookmaster
 
Fecha de Ingreso: noviembre-2002
Ubicación: Toledo
Mensajes: 576
Re: Fondo cambiante

Yo esto lo haría con PHP metiendo en la zona del CSS lo siguiente:

Código PHP:
<?php
$Imagen 
rand(1,5); // Uso de rand(): rand(Valor minimo, Valor maximo);
echo "body{";
switch(
$Imagen){
    case 
1:
        echo 
"background-image: url('Fondo1.jpg'); ";
    break;
    case 
2:
        echo 
"background-image: url('Fondo2.jpg');";
    break;
    case 
3:
        echo 
"background-image: url('Fondo3.jpg');";
    break;
    case 
4:
        echo 
"background-image: url('Fondo4.jpg');";
    break;
    case 
5:
        echo 
"background-image: url('Fondo5.jpg');";
    break;
    default:
        echo 
"background-image: url('Fondo.jpg');";
    break;
}
echo 
"}";
?>
Y una versión mas reducida en PHP:
Código PHP:
<?php
$Valor 
rand(0,5); // Uso de rand(): rand(Valor minimo, Valor maximo);
$Imagenes = array("Fondo.jpg" "Fondo1.jpg" "Fondo2.jpg" "Fondo3.jpg" "Fondo4.jpg" "Fondo5.jpg");
echo 
"body{ background-image: url('".$Imagenes[$Valor]."')};";
?>

Si no se puede usar PHP pues el código en JavaScript sería algo parecido a esto:
Código HTML:
<script language="javascript">
var Imagen;
Imagen = Math.round(Math.random()*5 + 1); // Uso de Math.random(): Math.random()*Numero Maximo + Numero Minimo;
switch(Imagen){
	case 1:
		document.write="body{ background-image: url('Fondo1.jpg');}";
	break;
	case 2:
		document.write="body{ background-image: url('Fondo2.jpg');}";
	break;
	case 3:
		document.write="body{ background-image: url('Fondo3.jpg');}";
	break;
	case 4:
		document.write="body{ background-image: url('Fondo4.jpg');}";
	break;
	case 5:
		document.write="body{ background-image: url('Fondo5.jpg');}";
	break;
	default:
		document.write="body{ background-image: url('Fondo.jpg');}";
	break;
}
</script>
Este de JavaScript no lo he probado ya que no suelo cambiar el fondo de la página con este método.

Pero vamos que si puedes usar PHP mejor ya que ese no suele fallar.

PD.: No pongo el código en ASP porque no se aún programar en ASP

Última edición por bookmaster; 28-abr-2008 a las 19:53.
bookmaster está desconectado   Responder Citando
Antiguo 29-abr-2008, 04:21   #5 (permalink)
Enjuto ha deshabilitado el karma
 
Fecha de Ingreso: marzo-2008
Mensajes: 12
Re: Fondo cambiante

El JavaScript no me funciona, y el PHP no sé cómo usarlo.

En fin, tendré que renunciar a mi idea...

Muchas gracias de todos modos. Seguid así.
Enjuto está desconectado   Responder Citando
Antiguo 29-abr-2008, 11:41   #6 (permalink)
daPhyre llegará a ser famoso muy prontodaPhyre llegará a ser famoso muy pronto
 
Avatar de daPhyre
 
Fecha de Ingreso: marzo-2008
Ubicación: Idle. Return on 18/08
Mensajes: 734
Re: Fondo cambiante

Quizá se podría encontrar solución al JS, pero tambien hace el cambio de imagen 100% al azar, por lo que alguien que entra por primera vez podría ver el fondo distinto (Ahora, eso sería dificil para empezar, y quedaría sorprendido después cuando sepa que tuvo el "fondo al azar", así que no creo fuera mucho problema).

Ahora, si quisieras que fuera a fuerza por lo menos después de una visita, las soluciones son un sistema de login o usar cookies, y ya probar después de un el código al azar. Este último caso es ya muy complejo, por lo que si no usas PHP quizá no sea lo más conveniente. Igual sigo pensando que la primera solución es buena.

Otro detalle: ¿Sabes usar CSS? Si te interesa, puedo aplicar tu misma idea para cambiar no solo el fondo, si no el CSS completo, y así darle una vista más distinta a tu página (Ejemplo: El fondo normal azul con letra gris, y el azar1, un fondo rojo con verde con letras amarillas, además de todos los otros detalles).

Avisame si te interesa la propuesta.
__________________
<signs> daPhyre </signs>

¿Por qué dejar se usar tablas?
daPhyre está desconectado   Responder Citando
Antiguo 29-abr-2008, 12:19   #7 (permalink)
bookmaster tiene algunos puntos positivos de karma
 
Avatar de bookmaster
 
Fecha de Ingreso: noviembre-2002
Ubicación: Toledo
Mensajes: 576
Re: Fondo cambiante

Bueno, me ha costado un poquillo pero al final lo he areglado en javascript:
Código HTML:
<script language="javascript">
var Imagen;
Imagen = Math.round(Math.random()*5 + 1); // Uso de Math.random(): Math.random()*Numero Maximo + Numero Minimo;
switch(Imagen){
	case 1:
		document.write('<body background="Images/Fondos/Fondo1.jpg">');
	break;
	case 2:
		document.write('<body background="Images/Fondos/Fondo2.jpg">');
	break;
	case 3:
		document.write('<body background="Images/Fondos/Fondo3.jpg">');
	break;
	case 4:
		document.write('<body background="Images/Fondos/Fondo4.jpg">');
	break;
	case 5:
		document.write('<body background="Images/Fondos/Fondo5.jpg">');
	break;
	default:
		document.write('<body background="Images/Fondos/Fondo.jpg">');
	break;
}
</script>

Ejemplo funcionando: http://fdw.lohacemosweb.net/CambiaFondo.php


Te dejo una versión "reducida" que es como la que puse en PHP pero en JavaScript. Con este puedes agregar tantos fondos como quieras cambiando solo las lineas "Images/Fondos/Fondo1.jpg", cuantas mas agreges mas fondos podras poner.:
Código HTML:
<script language="javascript">
var Imagenes;
Imagenes = new Array (
"Images/Fondos/Fondo.jpg",
"Images/Fondos/Fondo1.jpg",
"Images/Fondos/Fondo2.jpg",
"Images/Fondos/Fondo3.jpg",
"Images/Fondos/Fondo4.jpg",
"Images/Fondos/Fondo5.jpg");
var Imagen;
Imagen = Math.round(Math.random()*(Imagenes.length-1) + 0); // Uso de Math.random(): Math.random()*Numero Maximo + Numero Minimo;
document.write('<body background="'+Imagenes[Imagen]+'">');
</script>
Con este puedes agregar tantos fondos como quieras cambiando solo las lineas "Images/Fondos/Fondo1.jpg", cuantas mas agreges mas fondos podras poner.

Última edición por bookmaster; 29-abr-2008 a las 12:32.
bookmaster está desconectado   Responder Citando
Antiguo 29-abr-2008, 16:04   #8 (permalink)
Enjuto ha deshabilitado el karma
 
Fecha de Ingreso: marzo-2008
Mensajes: 12
Re: Fondo cambiante

bookmaster, no sé qué hago mal, pero sigue sin funcionarme.

daPhyre, sólo quiero que cambie el fondo; no me gusta marear en exceso.


A ver si enfocándolo de otro modo...: Tengo (por ejemplo) tres fondos; uno de ellos (el habitual) quiero que aparezca el 80% de las veces, y los otros dos, el 10% y el 10% restantes respectivamente. ¿Es eso posible?

De verdad que agradezco vuestro interés.
Enjuto está desconectado   Responder Citando
Antiguo 29-abr-2008, 17:11   #9 (permalink)
bookmaster tiene algunos puntos positivos de karma
 
Avatar de bookmaster
 
Fecha de Ingreso: noviembre-2002
Ubicación: Toledo
Mensajes: 576
Re: Fondo cambiante

Siento si no se veía el ejemplo antes pero es que he estado haciendo cambios en mi hosting.

Hombre por poderse hacer si que se puede, pero va a ser bastante mas complicado, y si no te sale eso que es sencillo imagínate lo otro, de todas maneras veré como hacerlo.
bookmaster está desconectado   Responder Citando
Antiguo 29-abr-2008, 20:37   #10 (permalink)
daPhyre llegará a ser famoso muy prontodaPhyre llegará a ser famoso muy pronto
 
Avatar de daPhyre
 
Fecha de Ingreso: marzo-2008
Ubicación: Idle. Return on 18/08
Mensajes: 734
Re: Fondo cambiante

Bueno, gracias bookmaster por abreviarme la batalla contra el cambiador de fondos, aunque creo que sigue habiendo algo... Lo probaré yo a vr si me sirve.

A Enjuto: Solo era una propuesta, a trabajar sobre este entonces... y acerca de las posibilidades de cambio, solo debes hacer un random anidado. Uno primero que si es cero lo cambie y de forma contraria no lo cambie, y en caso de que lo cambie, otro random para ver cual pondrá en su lugar. Solo hay que ver la falla en el JS...

Suerte!
__________________
<signs> daPhyre </signs>

¿Por qué dejar se usar tablas?
daPhyre está desconectado   Responder Citando
Antiguo 30-abr-2008, 07:02   #11 (permalink)
Enjuto ha deshabilitado el karma
 
Fecha de Ingreso: marzo-2008
Mensajes: 12
Re: Fondo cambiante

Para un fondo completamente aleatorio encontré este script, que me funciona perfectamente:

Código HTML:
<script type="text/javascript">
var banner= new Array()
banner[0]="Image01URL"
banner[1]="Image02URL"
banner[2]="Image03URL"
banner[3]="Image04URL"
banner[4]="Image05URL"
banner[5]="Image06URL"
banner[6]="Image07URL"
banner[7]="Image08URL"
banner[8]="Image09URL"
banner[9]="Image10URL"
var random=Math.floor(10*Math.random());
document.write("<style>");
document.write("body {");
document.write(' background: #000000 url("' + banner[random] + '") repeat; background-attachment:fixed;');
document.write(" }");
document.write("</style>");
</script>
Ahora faltaría hacerlo no tan aleatorio, sino repartiendo las probabilidades.

Si no puede ser, la única alternativa que se me ocurre es poner el fondo "habitual" repetido muchas veces para que sea más probable que salga éste. Pero el código ocuparía demasiado espacio...
Enjuto está desconectado   Responder Citando
Antiguo 30-abr-2008, 08:39   #12 (permalink)
daPhyre llegará a ser famoso muy prontodaPhyre llegará a ser famoso muy pronto
 
Avatar de daPhyre
 
Fecha de Ingreso: marzo-2008
Ubicación: Idle. Return on 18/08
Mensajes: 734
Re: Fondo cambiante

Mi solución para darle más posibilidades al primer fondo que a los demás:

Sustituye:
Código:
var random=Math.floor(10*Math.random());
Por:
Código:
if (Math.floor(5*Math.random())==0)	// 20% de posibilidad que sea otro
	var random=0;
else
	var random=Math.floor(9*Math.random()) + 1;
Primero asegurate que el anterior código te funcione perfectamente, y ya después, cambias la línea para que la posibilidad sea mayor con el primero.

Nota que te lo dejé con 20% de posibilidad que cambie, si deseas que sea otra, cambia el 5 por otro número. Mientras mayor sea el número, menos posibilidades que cambie (Ejemplo: 2 sería 50% y 10 sería 10%. 100 sería 1% etc...)

Otro detalle: Si aun no te sirve el código, asegurate que tengas permitidos los JavaScript. Suerte!
__________________
<signs> daPhyre </signs>

¿Por qué dejar se usar tablas?
daPhyre está desconectado   Responder Citando
Antiguo 30-abr-2008, 10:18   #13 (permalink)
Enjuto ha deshabilitado el karma
 
Fecha de Ingreso: marzo-2008
Mensajes: 12
Re: Fondo cambiante

daPhyre, perfecto, maestro. Sólo un par de detalles:

Al cambiar el 5, a mí me funciona a la inversa; es decir: a menor número, menor probabilidad de que cambie el fondo (y me atrevería a aventurar que funciona en un rango del 1 al 10).

¿El (9*Math.random()) + 1 varía en función de cuántos fondos incluya o es siempre igual?

Muchas gracias.
Enjuto está desconectado   Responder Citando
Antiguo 02-may-2008, 22:25   #14 (permalink)
daPhyre llegará a ser famoso muy prontodaPhyre llegará a ser famoso muy pronto
 
Avatar de daPhyre
 
Fecha de Ingreso: marzo-2008
Ubicación: Idle. Return on 18/08
Mensajes: 734
Re: Fondo cambiante

Pues a tus preguntas:

1) Es lo que te decía: el 2 es 50% de que cambie (Uno de cada dos cambia), el cinco es el 20% de que cambie (Uno de cada 5 cambia) etc...

2) Y tienes razón, olvidé ese detalle. el "+1" es estático (Son los fondos predeterminados como normales, que en este caso, es uno) y el 9* indica cuantos son en total (En este caso, 9 + 1 = 10 fondos) Espero haberme explicado lo suficiente claro para que puedas hacerlo. Suerte! ;)
__________________
<signs> daPhyre </signs>

¿Por qué dejar se usar tablas?
daPhyre está desconectado   Responder Citando
Antiguo 04-may-2008, 10:48   #15 (permalink)
Enjuto ha deshabilitado el karma
 
Fecha de Ingreso: marzo-2008
Mensajes: 12
Re: Fondo cambiante

Cita:
Iniciado por daPhyre Ver Mensaje
Pues a tus preguntas:

1) Es lo que te decía: el 2 es 50% de que cambie (Uno de cada dos cambia), el cinco es el 20% de que cambie (Uno de cada 5 cambia) etc...

2) Y tienes razón, olvidé ese detalle. el "+1" es estático (Son los fondos predeterminados como normales, que en este caso, es uno) y el 9* indica cuantos son en total (En este caso, 9 + 1 = 10 fondos) Espero haberme explicado lo suficiente claro para que puedas hacerlo. Suerte! ;)
Sí, justamente eso suponía. Ya lo apliqué y me funciona perfectamente.

Muchísimas gracias.
Enjuto está desconectado   Responder Citando
Respuesta
Calificación: Calificación de Tema: 1 votos, 4,00 de promedio.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 15:41.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93