Foros del Web » Programando para Internet » Javascript »

Ayuda con este efecto

Estas en el tema de Ayuda con este efecto en el foro de Javascript en Foros del Web. Hola a todos, gracais por leerme, Quisiera que me ayuden con este efecto: <script> var currentpos=0,alt=1,curpos1=0,curpos2=-1 function initialize() { startit() } function scrollwindow(){ if (document.all) ...
  #1 (permalink)  
Antiguo 18/01/2003, 15:24
Avatar de medinauta  
Fecha de Ingreso: diciembre-2002
Ubicación: Guayaquil
Mensajes: 159
Antigüedad: 21 años, 4 meses
Puntos: 0
Ayuda con este efecto

Hola a todos, gracais por leerme,

Quisiera que me ayuden con este efecto:

<script>
var currentpos=0,alt=1,curpos1=0,curpos2=-1
function initialize()
{
startit()
}
function scrollwindow(){
if (document.all)
temp=document.body.scrollTop
else
temp=window.pageYOffset
if (alt==0)
alt=0//continuo=1
else
alt=0
if (alt==0)
curpos1=temp
else
curpos2=temp
if (curpos1!=curpos2){
if (document.all)
currentpos=document.body.scrollTop+1
else
currentpos=window.pageYOffset+1
window.scroll(0,currentpos)
}
else{
currentpos=0
window.scroll(0,currentpos)

}
}
function startit(){
setInterval("scrollwindow()",120)}
</script>

Ahora, uso un link para llamarlo, esto hace que la página haga un autoscroll, hasta llegar al final de la página y ahí se detiene.

El problema está en que al querer ir hacia arriba, no me deja, ya que el efecto detecta la posición y me sigue llevando hacia abajo.

Podrían ayudarme para ver qué cambios hay que hacerle para que :
1.- Al llegar al final de la página regrese al inicio
2.- Finalizar el efecto, osea que al llegar al final ya no funcione (por el problema del que hable, que me sigue levando hacia abajo).

Si tienen ideas de qué otras cosas cambiarles, se los agrdecería mucho.

Gracias por su siempre valiosa ayuda.

Saludos.

Última edición por medinauta; 18/01/2003 a las 15:26
  #2 (permalink)  
Antiguo 20/01/2003, 12:03
 
Fecha de Ingreso: noviembre-2002
Ubicación: Washington, DC
Mensajes: 822
Antigüedad: 21 años, 5 meses
Puntos: 5
Espero esto te ayude...encontré un código para hacer ese efecto y le añadí que lo haga automático al visitar la página. Tiene un botán que puedes liminar si no deseas nuuevamente que el usuario haga scroll automático. Aun así tiene el efecto de scroll automático la primera vez que la visitas.

Código:
<html>
<head>
<script language=JavaScript>
function scrollit(){ 
        for (I=1; I<=500; I++){         
         parent.scroll(1,I)  
        }
}                                                 
</script>
</head>
<body onload="scrollit();">
<FORM>
<INPUT onclick=scrollit() type=button value=Scroll> 
</FORM>
<BR>ALGO
<BR>ALGO
<BR>ALGO
<BR>ALGO
<BR>ALGO
<BR>ALGO
<BR>ALGO
<BR>ALGO<BR>ALGO
<BR>ALGO
<BR>ALGO
<BR>ALGO
<BR>ALGO
<BR>ALGO
<BR>ALGO
<BR>ALGO
<BR>ALGO
<BR>ALGO
<BR>ALGO
<BR>ALGO
<BR>ALGO
<BR>ALGO
<BR>ALGO
<BR>ALGO
<BR>ALGO
<BR>ALGO
<BR>ALGO
<BR>ALGO
<BR>ALGO
<BR>ALGO
<BR>ALGO
<BR>ALGO
<BR>ALGO
<BR>ALGO
<BR>ALGO
<BR>ALGO
<BR>ALGO
<BR>ALGO
<BR>ALGO
</body>
</html>
Probado en IE 6.0
__________________
Yanira
  #3 (permalink)  
Antiguo 20/01/2003, 15:05
Avatar de medinauta  
Fecha de Ingreso: diciembre-2002
Ubicación: Guayaquil
Mensajes: 159
Antigüedad: 21 años, 4 meses
Puntos: 0
Hola, Yanix, gracias, me parece muy bueno el script, pero, dime algo, hay alguna manera de hacer que el scroll sea más lento?, algo así como un setinterval?
  #4 (permalink)  
Antiguo 20/01/2003, 15:21
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
Hola medinauta,

tocando un poco el script de Yanix....

Código PHP:
<script language=JavaScript>
var 
i=0
function scrollit(){ 
        if (
i<=500) {         
         
parent.scroll(1,i
         
i++
         
pepe=window.setTimeout("scrollit()" ,150)
        }
}     
scrollit()                                            
</script> 
saludos a ambos
  #5 (permalink)  
Antiguo 20/01/2003, 17:14
Avatar de medinauta  
Fecha de Ingreso: diciembre-2002
Ubicación: Guayaquil
Mensajes: 159
Antigüedad: 21 años, 4 meses
Puntos: 0
Hola Tunait, gracias por tu ayuda, sabes, no entiendo algunas cosas en el código que me diste, como :
pepe=window.setTimeout("scrollit()" ,150)}}

No sé cuando se llama esta acción...

y, no sé hacerle para que no se ejecute al onload!!!, te agradecería tu ayuda...
  #6 (permalink)  
Antiguo 20/01/2003, 17:21
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
Buenas,

pepe=window.setTimeout("scrollit()" ,150) lo que hace es volver a llamar a la función en 150 milisegundos. Es como el setInterval.

...y para que no se ejecute al onload saca la penúltima línea, justo lo que va antes de </script>




scrollit()
</script>

Sacando ese scrollit()
  #7 (permalink)  
Antiguo 20/01/2003, 18:04
Avatar de medinauta  
Fecha de Ingreso: diciembre-2002
Ubicación: Guayaquil
Mensajes: 159
Antigüedad: 21 años, 4 meses
Puntos: 0
y sigo dando lata....

Y hay alguna forma en que se pueda repetir?, porque al llamar a la función "scrollit", funciona muy bien, pero si lo quiero repetir ya no funciona...Why?

Y se puede hacer que al llegar al final regrese al top?

Y finalmente, la parte de :
if (i<=500)

Ese 500 es de las líneas verdad?, pero lo puedo aumentar para que llega al final, poruq veo que se me detiene una lineas antes de llegar al final en mi explorador....

P.D.: Se nota mi novatada......verdad?

Saludos,
  #8 (permalink)  
Antiguo 21/01/2003, 15:54
Avatar de medinauta  
Fecha de Ingreso: diciembre-2002
Ubicación: Guayaquil
Mensajes: 159
Antigüedad: 21 años, 4 meses
Puntos: 0
A ver ahora ya sé como hacer que vuelva a funcionar después que se ejecuta la primera vez:

En el link al llamar a la función así: scrollit (i=0)

Ahora solo me falta hacer que se vuelva al top al llegar al final y eso del tamaño del texto cuando es mayor a 500, para que detecte el tamaño automáticamente.

Gracias a ambas, Yanix y Tunait
  #9 (permalink)  
Antiguo 22/01/2003, 07:15
 
Fecha de Ingreso: noviembre-2002
Ubicación: Washington, DC
Mensajes: 822
Antigüedad: 21 años, 5 meses
Puntos: 5
A ver si éste te sirve..


Código:
<SCRIPT Language="javascript">
pix = 800     
function scrollit(){ 
  for (I=1; I<=pix; I++){         
                parent.scroll(1,I);
        }
  for (I=pix; I>=1; I--){
                parent.scroll(pix,I);
        }}        
</SCRIPT>
<body onload="scrollit();" >
<BR>
algo
<BR>
algo
<BR>
algo
<BR>
algo
<BR>
algo
<BR>
algo
<BR>
algo
<BR>
algo
<BR>
algo
<BR>
algo
<BR>
algo
<BR>
algo
<BR>
algo
<BR>
algo
<BR>
<BR>
algo
<BR>
algo
<BR>
algo
<BR>
algo
<BR>
algo
<BR>
algo
<BR>
algo
<BR>
algo
<BR>
algo
<BR>
algo
<BR>
algo
<BR>
algo
<BR>
algo
<BR>
algo
<BR>
algo
<BR>
algo
<BR>
algo
<BR>
algo
<BR>
algo
<BR>
algo
<BR>
algo
<BR>
algo
</body>
__________________
Yanira

Última edición por Yanix; 22/01/2003 a las 07:17
  #10 (permalink)  
Antiguo 22/01/2003, 17:44
Avatar de medinauta  
Fecha de Ingreso: diciembre-2002
Ubicación: Guayaquil
Mensajes: 159
Antigüedad: 21 años, 4 meses
Puntos: 0
Saludos, Yanix, ese está muy bueno, lo arreglé así:

Código:
pix = (window.document.all['pixy'].height)
function scrollit(){ 
  for (I=1; I<=pix; I++){         
                parent.scroll(1,I);
        }
  for (I=pix; I>=1; I--){
                parent.scroll(pix,pix);
        }}
En la hoja le pongo un id ("pixy") a la celda o tabla que contiene el texto, pero debe tener establecido height (osea el alto).

A ver si alguien nos da una manito para ahora colocarle un setInterval o un setTimeout, cosa que se desplace más lento, así como arriba explicó tunait, pero no sé porqué no me sale, lo coloco y me hace un bucle...
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 05:01.