Cargar hojas de estilos aleatoriamente
3 seguidores
Creo que el título es bastante descriptivo. Pongamos que tenemos algo parecido a ésto:
misitio/css/estilo1.css
misitio/css/estilo2.css
misitio/css/estilo3.css
La idea sería que, mediante un script (php, js, etc), cada vez que un usuario entre a la página se cargue de manera aleatoria uno de los 3 estilos.
Otro tema sería cómo hacer que dicho estilo se mantuviese durante cada sesión, es decir, que aunque el usuario navegue dentro de la página, el estilo generado en un principio se mantenga, aunque este sería un problema secundario, me interesa sobre todo la primera cuestión.
Espero haberme explicado con claridad. Gracias a todos por vuestro tiempo y un saludo.
jmlweb
Yo lo único que he hecho ha sido "copy&paste" del código de plastikaweb...
diegojimenez
Fenomenal, funciona perfectamente! ¡Gracias a los dos por la ayuda!! :D
plastikaweb
Si, seria como dice JML, sólo que había una llave de cierre de función perdida,
<?php
$numero = rand(1,3);
?>
Pero así al navegar por diferentes páginas del sitio el estilo ira cambiando en la misma sesión del navegador, si es lo que quieres, es así de simple!
saludos
diegojimenez
Efectivamente, no funciona "Parse error: syntax error, unexpected" en la línea de
$numero = rand(1,3);
diegojimenez
Sin saber de PHP, creo que hay un error en la sintaxis del primer código.
jmlweb
<?php
$numero = rand(1,3);
}
?>
y luego para enlazar la hoja de estilos:
<link type="text/css" href="css/estilo<?php echo $numero; ?>.css" media="all" rel="stylesheet" />
diegojimenez
Gracias Carlos! La verdad es que es un método genial.
Otro método que he encontrado para hacerlo es mediante js, y funciona bastante bien. El problema es que no valida:
<script type="text/javascript">
function chooseStyle() {
var css = new Array('estilo1','estilo3','estilo3','estilo4');
var i = Math.floor(Math.random()*css.length);
var style = "css/"+css[i]+".css";
return style;
}
¿Sabrías decirme cómo hacer algo parecido pero sin recordar la sesión con tu método (PHP)? Es decir, cada vez que el usuario entra en la web, carga un estilo de manera aleatoria, sin más. No hace falta que guarde la sesión, de hecho he ahí lo divertido (que cada vez la página sea diferente).
¡Gracias por la ayuda y un saludo!
plastikaweb
Con PHP lo consigues facilmente:
Inicias sesiòn en cada página del sitio i creas un número aleatorio guardandolo como variable de sesión:
<?php session_start();
if (!isset($_SESSION['num'])){
$numero = rand(1,3);
$_SESSION['num'] = $numero;
}
?>
Luego en el link hacia el fichero CSS le das el valor a la propiedad href como sigue:
href="misitio/css/estilo=$_SESSION['num'];?>.css"