Al cargar la pagina, se muevan los scroll vertical y horizontal aleatoriamente

Iniciado por javierr, 25 Noviembre 2010, 14:16 PM

0 Miembros y 2 Visitantes están viendo este tema.

javierr

Pues esa es la idea, cada vez que se le de al boton actualizar se muevan los scroll horizontal y vertical de manera aleatoria para conseguir mostrar un contenido diferente de la pagina cada vez que la carguemos.
Aquí os dejo un script con el que consigo este efecto pero para desplazar los scroll siempre al mismo sitio, y lo que quiero hacer es si alguien me modifica este script para que no sea siempre el desplazamiento al mismo lugar sino a diferentes lugares aleatorios.
aquí el script:

<SCRIPT LANGUAGE=javascript>
  Scrolling = 0;
  function ScrollWin() {
    while(Scrolling != 3000) {
    this.scroll(1000,Scrolling)
    Scrolling++;
    }
  }
</SCRIPT>

En el body ponemos esto para que cada vez que carguemos la pagina se invoque el efecto del script:

<BODY onload="javascript:ScrollWin()">


el while te mueve la web en vertical y el this.scroll lo hace en horizontal, en este caso moveria 3000 px en vertical y 1000 en horizontal los scroll.

Ahora bien, sabrías como hacerlo para que no tenga valores fijos sino que se mueva a lugares aleatorios cada vez que invoque el script al cargar la pagina???
Use random pero no se si esta bien este script:

<script language=javascript>

function ScrollWin() {
   var Scrolling = 0;
   var ancho = 0;
   var alto = 0;

   alto = $.randomBetween(0, alto);
   ancho = $.randomBetween(0, ancho);
   
   this.scroll(alto, ancho);
}
</script>

Ayudarme please, este script no me funcion, no se si habrá algo mal espero vuestra ayuda. gracias.

ABDERRAMAH

¿has probado así?

<SCRIPT LANGUAGE=javascript>
 function ScrollWin() {
   Scrolling = 0;
   while(Scrolling != 3000) {
   this.scroll(1000,Scrolling)
   Scrolling++;
   }
 }
</SCRIPT>

ah, perdona, es el otro el que no funciona.

<script language=javascript>

function ScrollWin() {
  var Scrolling = 0; // []
  var ancho = 0;
  var alto = 0;

  alto = $.randomBetween(0, alto); // [¿¿esto no crea un valor entre 0 y 0??]
  ancho = $.randomBetween(0, ancho);
 
  this.scroll(alto, ancho);
}
</script>

prueba asi:
Citar
<SCRIPT LANGUAGE=javascript>
   
function ScrollWin() {
   var Scrolling = 0;
   var ancho = 0;
   var alto = 0;
   var toph = 12; // [cambiar 12 por el valor deseado]
   var topv = 12; // [cambiar 12 por el valor deseado]

   alto = $.randomBetween(0, toph);
   ancho = $.randomBetween(0, topv);
   
   this.scroll(alto, ancho);
}
</SCRIPT>

javierr

No funciona ABDERRAMAH, el único que funciona es el primer script, del segundo y el que has modificado no funciona. Sabrías modificar el primero para conseguir el efecto con aleatorio??

mira este script modificando el primero:

modificando algo de el por aquí igual conseguimos lo deseado:

<script language=javascript>
  Scrolling = 0;
  var rango_superior = 1000; 
  var rango_inferior = 500; 
  var aleatorio = Math.floor(Math.random()*(rango_superior-(rango_inferior-1))) + rango_inferior;
  function ScrollWin() {
    while(Scrolling != aleatorio){
    this.scroll(aleatorio,Scrolling)
    Scrolling++;
    }
  }
</script>

Este es el primer script el que sí funciona pero con un valor definido:

<SCRIPT LANGUAGE=javascript>
  function ScrollWin() {
    Scrolling = 0;
    while(Scrolling != 3000) {
    this.scroll(1000,Scrolling)
    Scrolling++;
    }
  }
</SCRIPT>

ayuda por favor. gracias.


seele

hola
Código (javascript) [Seleccionar]
<script language=javascript>

function ScrollWin() {
   var Scrolling = 0; // []
   var ancho = 0;
   var alto = 0;

   alto = $.randomBetween(0, alto); // [¿¿esto no crea un valor entre 0 y 0??]
   ancho = $.randomBetween(0, ancho);
 
   this.scroll(alto, ancho);
}
</script>

lo que sucede es que como bien dijo ABDERRAMAH, defines el alto y ancho como 0 por lo que el numero random que buscas siempre te va a devolver cero, tienes que usar el random en la variable alto y ancho o en este caso cambiarles el nombre a maximo y minimo
algo asi

Código (javascript) [Seleccionar]
<script language=javascript>

function ScrollWin() {
   var Scrolling = 0; // []
   var anchomax = 100;
   var altomax = 300;

   alto = $.randomBetween(0, altomax);
   ancho = $.randomBetween(0, anchomax);
 
   this.scroll(alto, ancho);
}
</script>


saludos

javierr

hola seele, si eso es cierto, estaba mal pero aún corrigiéndolo, sigue sin funcionar el script, ese que me has puesto no funciona, creo que en javascript así no se aplican los random, ya que creo que proviene de la clase "Math", seguiré un rato más pero pienso que la clave de este script está en modificar el primero, no el segundo, gracias por vuestra ayuda.

ABDERRAMAH

No es mi lenguaje, pero puedo intentar algo a ver... no prometo nada, eh

javierr

No te preocupes ABDERRAMAH, porque....
Ya lo he sacado!! Si quieres la solución avisa y la paso, estaba en la clase "Math", para usarlo bien con javascript debes programarlo con "Math.random" .

Lo unico que no me gusta es que se mueve el scroll poco a poco cada vez que recargas la pagina y me gustaría que lo hiciera de un tirón, ¿Sabes como hacer poner esto para que cuando haga scrolling lo haga de una vez y no poco a poco?

Oye ya que me estás echando una mano, te voy a proponer una cosa a ver si sabes hacerla también. ¿Sabrías programar un buscador que cuando metas un dato te lleve a una parte en concreto de la página? Es decir, como cuando por ejemplo pones un enlace que cuando pinchas en el te lleva a una parte de la pagina en concreto, hacer algo parecido pero no con un enlace sino con un buscador, aunque tuviese que crear yo las listas, te lo agradecería infinitamente. hay tienes mis 2 dudas, la del scrolling y esta última. mil gracias.

seele

te mueve el scroll porque usaste la primera funcion esa mueve el scroll con wl whille de a 1px por cada ciclo
adapta tu random a la segunda solucion para que no se mueva

saludos

javierr

Seele ya encontré el problema, estaba en el Scrolling++; del bucle que procesaba de uno en uno, si se lo cambias con un valor numérico más alto va más rápido el scrolling y no se nota como "va paso a paso" parece más automático.

Entonces poniendo Scrolling +=100;
Así va 100 veces más rápido y así sucesivamente pero sin pasarte sino se saltará el bucle y repetirá esto antes por lo que apenas se moverá el scroll.

Gracias, y Seele te propongo lo mismo que al compañero, ¿ lo de hacer un pseudobuscador o algo así para que por ejemplo si le pones a una foto una etiqueta de por ejemplo un numero, hacer un buscador para que cuando metas ese número te lleve a esa parte en concreto de la página, me entiendes?

Por ejemplo, si ponemos <a name="m0">LO QUE SEA</a> en una parte de la página y luego en otro lugar ponemos <a href="#m0">Al hacer click aquí me iré a LO QUE SEA</a> , con esto conseguimos que mediante un enlace nos lleve al lugar donde se encuentre LO QUE SEA.

Pues mi pregunta es que si mediante javascript o lo que fuese se podría hacer algo parecido pero no con uin enlace, sino con una caja de búsqueda, que en la caja pusiera "algo" y al darle a buscar me llevara a una parte de la página por ejemplo a la parte LO QUE SEA. ¿ me entendiste???

si supierais resolverme esto os lo agradecería mucho mucho.

gracias.

seele

claro, asi se mueve mas rapido, yo pense que querias que se quede fijo :P

pues la idea es hacer algo como un ancla? no termino de cerrar la idea por completo, pero si todo lo que se pueda hacer para colaborar se hara con gusto ;)

saludos