Foros del Web » Programando para Internet » Javascript »

Scrooltop que se torne invisible..

Estas en el tema de Scrooltop que se torne invisible.. en el foro de Javascript en Foros del Web. Hola una ves más.. En estos dias estuve buscando y tratando de hacer una flecha que : Aparesca unicamente cuando se llega al final del ...
  #1 (permalink)  
Antiguo 14/10/2011, 22:48
 
Fecha de Ingreso: agosto-2011
Mensajes: 24
Antigüedad: 12 años, 9 meses
Puntos: 0
Scrooltop que se torne invisible..

Hola una ves más..

En estos dias estuve buscando y tratando de hacer una flecha que :

Aparesca unicamente cuando se llega al final del foro y que al apretarla te lleve al comienzo, es decir, un scrool top.

En fín, lo que pude hacer es que aparesca y que te lleve para arriba, pero no se bien como lograr que solamente aparesca cuando estes al final de la web y que cuando te lleve al comienzo desaparesca..

Este es mi código hasta ahora :

Código HTML:
#scroll-arriba {
    background: url("http://www.mindgaming.com.ar/host-image/images/arriba.png") no-repeat scroll left top transparent;
    display: none;
    height: 40px;
    opacity: 0.5;
    position: fixed;
    right: 10px;
    top: 10px;
    width: 40px;
}
#scroll-arriba:hover {
    opacity: 0.7;
}
Código HTML:
<a id="scroll-up" onclick="scrollTo(0,0)" style="display: inline;"></a> 

si me pudisen tirar una mano para lograr esto se los agradecería mucho.

desde ya muchas gracias.
  #2 (permalink)  
Antiguo 15/10/2011, 04:18
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: Scrooltop que se torne invisible..

Probá así (no pude testearlo en explorer):
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>Untitled Document</title>
<
script type="text/javascript">
onscroll=function(){
    if( (
document.documentElement.scrollTop==(document.documentElement.scrollHeight-document.documentElement.clientHeight)) || (document.body.scrollTop==(document.documentElement.scrollHeight-document.documentElement.clientHeight)) ){
        
alert(1);    
    }
}
</script>
</head>

<body>
top<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />bottom
</body>
</html> 
  #3 (permalink)  
Antiguo 15/10/2011, 14:00
 
Fecha de Ingreso: agosto-2011
Mensajes: 24
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Scrooltop que se torne invisible..

Cita:
Iniciado por Panino5001 Ver Mensaje
Probá así (no pude testearlo en explorer):
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>Untitled Document</title>
<
script type="text/javascript">
onscroll=function(){
    if( (
document.documentElement.scrollTop==(document.documentElement.scrollHeight-document.documentElement.clientHeight)) || (document.body.scrollTop==(document.documentElement.scrollHeight-document.documentElement.clientHeight)) ){
        
alert(1);    
    }
}
</script>
</head>

<body>
top<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />bottom
</body>
</html> 

Segun vi, eso lo que hace es detectar cuando el scrool llega al final de la web y emitir un alert.. pero como enlazo esa funcion con el css de la imagen para aplicarselo ?

pd: en firefox anda, en chrome no

saludos!
  #4 (permalink)  
Antiguo 16/10/2011, 07:03
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: Scrooltop que se torne invisible..

Bueno, todo masticado sería así:
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>Untitled Document</title>
<
style>
#flecha{ background:#F00; bottom:10px; cursor:pointer; display:none; height:50px; position:fixed; right:10px; width:50px;}
</style>
<
script type="text/javascript">
onscroll=function(){
    if( (
document.documentElement.scrollTop==(document.documentElement.scrollHeight-document.documentElement.clientHeight)) || (document.body.scrollTop==(document.documentElement.scrollHeight-document.documentElement.clientHeight)) ){
        
document.getElementById('flecha').style.display='block';    
    }else if(
document.getElementById('flecha').style.display=='block'){
        
document.getElementById('flecha').style.display='none';
    }
}
function 
subir(){scrollTo(0,0);}
onload=function(){
    
document.getElementById('flecha').onclick=subir;
}
</script>
</head>

<body>
<div id="flecha"></div>
top<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />bottom
</body>
</html> 
En Chrome 14.0.835.202 sobre MAC funciona sin problemas (en estos momentos no puedo testearlo en PC).
  #5 (permalink)  
Antiguo 17/10/2011, 18:31
 
Fecha de Ingreso: agosto-2011
Mensajes: 24
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Scrooltop que se torne invisible..

Cita:
Iniciado por Panino5001 Ver Mensaje
Bueno, todo masticado sería así:
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>Untitled Document</title>
<
style>
#flecha{ background:#F00; bottom:10px; cursor:pointer; display:none; height:50px; position:fixed; right:10px; width:50px;}
</style>
<
script type="text/javascript">
onscroll=function(){
    if( (
document.documentElement.scrollTop==(document.documentElement.scrollHeight-document.documentElement.clientHeight)) || (document.body.scrollTop==(document.documentElement.scrollHeight-document.documentElement.clientHeight)) ){
        
document.getElementById('flecha').style.display='block';    
    }else if(
document.getElementById('flecha').style.display=='block'){
        
document.getElementById('flecha').style.display='none';
    }
}
function 
subir(){scrollTo(0,0);}
onload=function(){
    
document.getElementById('flecha').onclick=subir;
}
</script>
</head>

<body>
<div id="flecha"></div>
top<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />bottom
</body>
</html> 
En Chrome 14.0.835.202 sobre MAC funciona sin problemas (en estos momentos no puedo testearlo en PC).

Muchísimas gracias, me funcionó de 10.

no quiero molestár mas ni abusar, pero como podría desacelerar la subida del scrool para que valla un poco mas lento, es decir que no sea tan rapida la subida.

saludos!
  #6 (permalink)  
Antiguo 17/10/2011, 21:01
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: Scrooltop que se torne invisible..

Para hacerlo mejpr deberías estudiar un poco: http://www.disegnocentell.com.ar/notas2.php?id=239
Pero una manera sería esta:
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>Untitled Document</title
<
style
#flecha{ background:#F00; bottom:10px; cursor:pointer; display:none; height:50px; position:fixed; right:10px; width:50px;} 
</style
<
script type="text/javascript"
onscroll=function(){ 
    if( (
document.documentElement.scrollTop==(document.documentElement.scrollHeight-document.documentElement.clientHeight)) || (document.body.scrollTop==(document.documentElement.scrollHeight-document.documentElement.clientHeight)) ){ 
        
document.getElementById('flecha').style.display='block';     
    }else if(
document.getElementById('flecha').style.display=='block'){ 
        
document.getElementById('flecha').style.display='none'
    } 

function 
subir(){
    var 
dist,x;
    
dist=x=document.documentElement.scrollHeight-document.documentElement.clientHeight;
    for(var 
i=0;i<100;i++){
        
setTimeout(function(){x-=(dist/100);scrollTo(0,(x));},5*i);
    }

onload=function(){
    var 
f=document.getElementById('flecha');
    
f.onclick=subir;
    
f=null;

</script> 
</head> 

<body> 
<div id="flecha"></div> 
top<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />bottom 
</body> 
</html> 
  #7 (permalink)  
Antiguo 18/10/2011, 19:35
 
Fecha de Ingreso: agosto-2011
Mensajes: 24
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Scrooltop que se torne invisible..

Cita:
Iniciado por Panino5001 Ver Mensaje
Para hacerlo mejpr deberías estudiar un poco: [url]http://www.disegnocentell.com.ar/notas2.php?id=239[/url]
Pero una manera sería esta:
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>Untitled Document</title
<
style
#flecha{ background:#F00; bottom:10px; cursor:pointer; display:none; height:50px; position:fixed; right:10px; width:50px;} 
</style
<
script type="text/javascript"
onscroll=function(){ 
    if( (
document.documentElement.scrollTop==(document.documentElement.scrollHeight-document.documentElement.clientHeight)) || (document.body.scrollTop==(document.documentElement.scrollHeight-document.documentElement.clientHeight)) ){ 
        
document.getElementById('flecha').style.display='block';     
    }else if(
document.getElementById('flecha').style.display=='block'){ 
        
document.getElementById('flecha').style.display='none'
    } 

function 
subir(){
    var 
dist,x;
    
dist=x=document.documentElement.scrollHeight-document.documentElement.clientHeight;
    for(var 
i=0;i<100;i++){
        
setTimeout(function(){x-=(dist/100);scrollTo(0,(x));},5*i);
    }

onload=function(){
    var 
f=document.getElementById('flecha');
    
f.onclick=subir;
    
f=null;

</script> 
</head> 

<body> 
<div id="flecha"></div> 
top<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />bottom 
</body> 
</html> 

Una ves más, muchisimas gracias por la ayuda y perdon si exigi mucho XD

pd : recien empeze con javascript y todavia en el manual gigante que tengo no llege a ese tipo de parametros, te agradesco por la info extra.


se podría decir que tema solucionado XD

saludos!
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 10:43.