Foros del Web » Programando para Internet » Javascript »

divs apareciendo aleatoriamente

Estas en el tema de divs apareciendo aleatoriamente en el foro de Javascript en Foros del Web. Necesito ir mostrando una serie de divs a modo de "bocadillos" mientras se navega por la web. Si salen aleatoriamente, mejor, lo importante es que ...
  #1 (permalink)  
Antiguo 18/06/2009, 06:28
Avatar de angeldelolmo  
Fecha de Ingreso: junio-2008
Mensajes: 109
Antigüedad: 15 años, 11 meses
Puntos: 1
divs apareciendo aleatoriamente

Necesito ir mostrando una serie de divs a modo de "bocadillos" mientras se navega por la web.


Si salen aleatoriamente, mejor, lo importante es que se vaya mostrando uno por ejemplo cada 3 segundos.

Gracias !
  #2 (permalink)  
Antiguo 18/06/2009, 07:02
Avatar de KiraSakuya  
Fecha de Ingreso: junio-2009
Mensajes: 67
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: divs apareciendo aleatoriamente

<script language=javascript>
function testtimeout(){
setTimeout("printer()",3000);
}

function printer(){
var randomnumber=Math.floor(Math.random()*11)
document.getElementById("TuDiv").style.left=random number;
var randomnumber=Math.floor(Math.random()*11)
document.getElementById("TuDiv").style.top=randomn umber;
}
</script>

<div position="absolute" id="TuDiv">CONTENIDO</div>

El 11 que resalto, debe ser un numero que valides tu, para que el div no se salga de la pantalla :D
El 3000 es el numero de milisegundos que tarda :)
A ver si te funciona

Solo tienes que lanzar el evento testtimeout donde quieres que se inicialice
  #3 (permalink)  
Antiguo 18/06/2009, 10:01
Avatar de angeldelolmo  
Fecha de Ingreso: junio-2008
Mensajes: 109
Antigüedad: 15 años, 11 meses
Puntos: 1
Respuesta: divs apareciendo aleatoriamente

No me funciona, me da un error de sintaxis en esta línea:

document.getElementById("TuDiv").style.left=random number;




Además no se si me he explicado bien...

lo que necesito es que cada vez se vea SÓLO un div, y que yo defina de antemano dónde va a aparecer siempre cada uno. Lo único que debe ser aleatorio es el órden de aparición...

GRACIAS DE TODAS FORMAS ! ;)
  #4 (permalink)  
Antiguo 19/06/2009, 00:18
Avatar de KiraSakuya  
Fecha de Ingreso: junio-2009
Mensajes: 67
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: divs apareciendo aleatoriamente

Código Testado:
Ver original
  1. <script language="javascript" type="text/javascript">
  2. var posicion = new Array();
  3. var i=0;
  4. function testtimeout(){
  5. switch (i)
  6. {
  7.     case 0: posicion[0]=500;
  8.             posicion[1]=100;
  9.             break;
  10.     case 1: posicion[0]=100;
  11.             posicion[1]=500;
  12.             break;
  13.     case 2: posicion[0]=300;
  14.             posicion[1]=300;
  15.             break;
  16.    
  17. }
  18. var randomnumber=Math.floor(Math.random()*11);
  19. document.getElementById("TuDiv").style.left=posicion[0]
  20. var randomnumber=Math.floor(Math.random()*11);
  21. document.getElementById("TuDiv").style.top=posicion[1]
  22. i=Math.floor(Math.random()*3);
  23. t=setTimeout("testtimeout()",3000);
  24. }
  25.  
  26. </script>

Si es que las prisas nunca fueron buenas consejeras, sobraban espacios y estaba mal el nombre de alguna variable.

Te lo pongo a lo sencillo, pero si de antemano tienes las posiciones en un array por si son muchas, mejor, no cargas tanto codigo con un switch y solo tienes que adaptar el codigo un poco. Pruebalo y me cuentas

Última edición por KiraSakuya; 19/06/2009 a las 00:25
  #5 (permalink)  
Antiguo 19/06/2009, 03:22
Avatar de angeldelolmo  
Fecha de Ingreso: junio-2008
Mensajes: 109
Antigüedad: 15 años, 11 meses
Puntos: 1
Respuesta: divs apareciendo aleatoriamente

Gracias KiraSakuya ;)

He puesto esto y no me funciona, no se si tengo que aplicarle algún estilo al div o algo.... He llamado a la función en el body onload, no se si es correcto...

Y cómo hago para poner varios divs???
Esque no se si me he explicado bien, tienen que ser varios div y que en cada momento vaya mostrando uno, siempre en la misma posición, pero cada vez un div aleatoriamente...

Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<
title>Documento sin t&#237;tulo</title>
</head>

<
body onload="testtimeout()">
<
div  id="TuDiv">contenido</div>
<
script language="javascript" type="text/javascript">
      var 
posicion = new Array();
      var 
i=0;
      function 
testtimeout(){
      switch (
i)
      {
          case 
0posicion[0]=500;
                  
posicion[1]=100;
                  break;
          case 
1posicion[0]=100;
                  
posicion[1]=500;
                  break;
          case 
2posicion[0]=300;
                  
posicion[1]=300;
                  break;
      }
      var 
randomnumber=Math.floor(Math.random()*11);
      
document.getElementById("TuDiv").style.left=posicion[0]
      var 
randomnumber=Math.floor(Math.random()*11);
      
document.getElementById("TuDiv").style.top=posicion[1]
      
i=Math.floor(Math.random()*3);
      
t=setTimeout("testtimeout()",3000);
      }
</
body>
</
html
  #6 (permalink)  
Antiguo 19/06/2009, 04:18
Avatar de KiraSakuya  
Fecha de Ingreso: junio-2009
Mensajes: 67
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: divs apareciendo aleatoriamente

A ver si lo he entendido bien, mira a ver si el siguiente codigo te funciona.
Yo lo estoy probando en explorer 7.0 asi que si utilizas otro navegador dimelo, porque lo testeo en el otro navegador ok? (En este PC del trabajo solo tengo IE -.-)

Código que esperemos sea definitivo:
Ver original
  1. <html xmlns="http://www.w3.org/1999/xhtml" >
  2. <head runat="server">
  3.     <title>Página sin título</title>
  4. <script language="javascript" type="text/javascript">
  5. var posicion = new Array();
  6. var i=0;
  7. function testtimeout(){
  8. switch (i)
  9. {
  10.     case 0: document.getElementById("Div0").style.visibility = "visible"
  11.             document.getElementById("Div1").style.visibility= "hidden"
  12.             document.getElementById("Div2").style.visibility = "hidden"
  13.             break;
  14.     case 1: document.getElementById("Div0").style.visibility = "hidden"
  15.             document.getElementById("Div1").style.visibility = "visible"
  16.             document.getElementById("Div2").style.visibility = "hidden"
  17.             break;
  18.     case 2: document.getElementById("Div0").style.visibility = "hidden"
  19.             document.getElementById("Div1").style.visibility= "hidden"
  20.             document.getElementById("Div2").style.visibility = "visible"
  21.             break;
  22.    
  23. }
  24.  
  25. i=Math.floor(Math.random()*3) //El *3 deberia cambiar en funcion del numero de divs que tienes, esto luego se tiene que acomodar a
  26. //lo que tu necesitas :) es el numero de numeros que recorre desde 0 hasta el numero(en este caso 3) -1
  27.  
  28. t=setTimeout("testtimeout()",3000);
  29. }
  30.  </script>
  31. </head>
  32. <body onload="testtimeout()">
  33.     <div style="position: absolute; left: 100px; top: 100px" id="Div0">CONTENIDO0</div>
  34.     <div style="position: absolute; left: 200px; top: 200px ; visibility:hidden" id="Div1">CONTENIDO1</div>
  35.     <div style="position: absolute; left: 300px; top: 300px ;visibility:hidden" id="Div2">CONTENIDO2</div>
  36. </body>
  37. </html>

El *3 deberia cambiar en funcion del numero de divs que tienes, esto luego se tiene que acomodar a lo que tu necesitas :)

Suerte :D
  #7 (permalink)  
Antiguo 19/06/2009, 06:24
Avatar de angeldelolmo  
Fecha de Ingreso: junio-2008
Mensajes: 109
Antigüedad: 15 años, 11 meses
Puntos: 1
Respuesta: divs apareciendo aleatoriamente

MUCHAS GRACIAS!!!

Era justo lo que necesitaba!

Muy buena ayuda, KiraSakuya, así da gusto ;)
  #8 (permalink)  
Antiguo 19/06/2009, 06:33
Avatar de KiraSakuya  
Fecha de Ingreso: junio-2009
Mensajes: 67
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: divs apareciendo aleatoriamente

Ha costao eh?? xDD Me alegra haberte ayudado :)
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 21:17.