Foros del Web » Programando para Internet » Javascript »

Javascript para ir a determinada línea

Estas en el tema de Javascript para ir a determinada línea en el foro de Javascript en Foros del Web. Hola gente del foro! Les comento que estoy armando una web que tiene vínculos a determinadas líneas de texto. Sé que eso se hace con ...
  #1 (permalink)  
Antiguo 11/11/2012, 17:14
Avatar de rodeirojg  
Fecha de Ingreso: junio-2012
Ubicación: Buenos Aires
Mensajes: 86
Antigüedad: 12 años, 5 meses
Puntos: 2
Pregunta Javascript para ir a determinada línea

Hola gente del foro!

Les comento que estoy armando una web que tiene vínculos a determinadas líneas de texto. Sé que eso se hace con un ID, de manera que después el vínculo quedaría <a href="#ID">. El tema es que me gustaría que eso suceda con el efecto que tiene el menú izquierdo de esta página:

http://www.woorank .com/es/www/meristation. com (quiten los espacios en blanco)

Alguien conoce algun Javascript así?
__________________
Julian G. Rodeiro
Encargado del área de Diseño en:
www.brandestudio.com.ar
  #2 (permalink)  
Antiguo 12/11/2012, 06:02
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 5 meses
Puntos: 1012
Respuesta: Javascript para ir a determinada línea

prueba con este
Cita:
<!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="application/xhtml; charset=utf-8" />
<title></title>
<script type="text/javascript">
(function(){
var init=function(){
var tags=document.getElementsByTagName('A'),doms=[],intervalo=false,timeout=false,time=80; // en time se define la velocidad.
for(var i=0;i<tags.length;i++){
if(tags[i].getAttribute('rel')!=null){
if(tags[i].getAttribute('rel')=='easyurl'){
doms.push(tags[i]);
}
}
}
for(var i=0;i<doms.length;i++){
doms[i].onclick=function(){
var id=this.getAttribute('href').split('#')[1],dom=document.getElementById(id),offsetTop=0,offse tLeft=0,elm=dom;
while(elm.offsetParent){
offsetLeft+=elm.offsetLeft;
offsetTop+=elm.offsetTop;
elm=elm.offsetParent;
}
if(intervalo)clearInterval(intervalo);
if(timeout)clearTimeout(timeout);
var actT=document.documentElement.scrollTop?document.d ocumentElement.scrollTop:document.body.scrollTop;
var actL=document.documentElement.scrollLeft?document. documentElement.scrollLeft:document.body.scrollLef t;
time=time>1?time:2;
intervalo=setInterval(function(){
if(actT==offsetTop&&actL==offsetLeft){clearInterva l(intervalo);clearTimeout(timeout);}
actT=(actT>offsetTop?Math.floor(actT-((actT-offsetTop)/time)):Math.ceil(actT+((offsetTop-actT)/time)));
actL=(actL>offsetLeft?Math.floor(actL-((actL-offsetLeft)/time)):Math.ceil(actL+((offsetLeft-actL)/time)));
window.scrollTo(actL,actT);
},1);
timeout=setTimeout(function(){clearInterval(interv alo);},time*1000);
return false;
};
}
};
if(window.addEventListener){
window.addEventListener('load',init,false);
}else if(window.attachEvent){
var f=function(){init.call(window,window.event);};
window.attachEvent('onload',f);
window[init.toString()+'load']=f;
}else{
window['onload']=init;
}
})();
</script>
</head>
<body>
<p><a href="#abajo" id="arriba" rel="easyurl">Abajo</a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><a href="#arriba" id="abajo" rel="easyurl">Arriba</a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
</body>
</html>
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #3 (permalink)  
Antiguo 12/11/2012, 10:54
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: Javascript para ir a determinada línea

Podés uitlizar este efecto
http://foros.emprear.com/javascript/scrollsuave/

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Última edición por emprear; 12/11/2012 a las 13:07
  #4 (permalink)  
Antiguo 12/11/2012, 10:56
Avatar de rodeirojg  
Fecha de Ingreso: junio-2012
Ubicación: Buenos Aires
Mensajes: 86
Antigüedad: 12 años, 5 meses
Puntos: 2
Respuesta: Javascript para ir a determinada línea

Cita:
Iniciado por IsaBelM Ver Mensaje
prueba con este
Muchas gracias por tu respuesta IsaBelM!!! El único tema es que no encuentro cual es el error de sintaxis que me arroja en la línea 19. Intenté cambiar algunos caracteres pero no me resultó todavía.
__________________
Julian G. Rodeiro
Encargado del área de Diseño en:
www.brandestudio.com.ar
  #5 (permalink)  
Antiguo 12/11/2012, 10:59
Avatar de rodeirojg  
Fecha de Ingreso: junio-2012
Ubicación: Buenos Aires
Mensajes: 86
Antigüedad: 12 años, 5 meses
Puntos: 2
Respuesta: Javascript para ir a determinada línea

Cita:
Iniciado por emprear Ver Mensaje
Podés uitlizar este efecto
http://foros.emprear.com/javascript/...rollsuave.html

Saludos
Exactamente, es genial! sería algo casi exactamente como eso pero con un efecto de des-aceleración al aproximarse al objetivo (lo sé, soy muy #%"%$, pero cuando me encariño de algo que veo hasta que no me sale no me quedo conforme)
__________________
Julian G. Rodeiro
Encargado del área de Diseño en:
www.brandestudio.com.ar
  #6 (permalink)  
Antiguo 12/11/2012, 11:14
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: Javascript para ir a determinada línea

Bueno, el efecto mas o menos lo hace, lo que sucede que en mi caso puse muchos links, si se hiciese suave desde el 1 al 25 tardaría demasiado, si vas del 10 al 15 el efecto es más suave

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #7 (permalink)  
Antiguo 12/11/2012, 14:30
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 5 meses
Puntos: 1012
Respuesta: Javascript para ir a determinada línea

Cita:
Iniciado por rodeirojg Ver Mensaje
Muchas gracias por tu respuesta IsaBelM!!! El único tema es que no encuentro cual es el error de sintaxis que me arroja en la línea 19. Intenté cambiar algunos caracteres pero no me resultó todavía.
var id=this.getAttribute('href').split('#')[1],dom=document.getElementById(id),offsetTop=0,offse tLeft=0,elm=dom;

la propiedad es offsetLeft
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #8 (permalink)  
Antiguo 12/11/2012, 16:27
(Desactivado)
 
Fecha de Ingreso: noviembre-2002
Ubicación: Ciudad Autónoma de Buenos Aires
Mensajes: 2.367
Antigüedad: 22 años
Puntos: 317
Respuesta: Javascript para ir a determinada línea

Claro, no lo encontraba porque no era un error de sintaxis, sino de caprichosa.
Y no es el único. Y no me refiero a todos (o casi todos) tus mensajes con código: ya me estoy refiriendo a éste, que tiene líneas cortadas por todos lados y para probarlo me tuve que poner a corregirlas.


Por otro lado, creo que entiendo un poco lo de la velocidad. Lo que falta es la "amortiguación" a la llegada. Que baje gradualmente hasta detenerse, pero que la disminución empiece unos ... no sé, 100 pixeles antes. Hay un recurso, que es usar funciones trigonométricas para ir reduciendo el tiempo y así parece que se frena de a poco. Está algún ejemplo por ahí.

Yo me acordé de éste, del amigo Panino5001

menu flotante efecto ascensor
  #9 (permalink)  
Antiguo 13/11/2012, 05:55
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 5 meses
Puntos: 1012
Respuesta: Javascript para ir a determinada línea

la deceleración es sencilla de lograr

sabemos de donde partimos y hasta donde tenemos que llegar


Cita:
var tags=document.getElementsByTagName('A'),doms=[],intervalo=false,timeout=false,time=80, time2=80;

.....


time=time>1?time2:2; // resetea velocidad
deceleracion = offsetTop > actT ? 'down' : 'up';
intervalo=setInterval(function(){

// deceleración progresiva

switch(deceleracion) {
case 'down':
if((offsetTop-300) < actT) time += 2;
break;
case 'up':
if((offsetTop+300) > actT) time += 2;
break;
}


if(actT==offsetTop&&actL==offsetLeft){clearInterva l(intervalo);clearTimeout(timeout);}
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #10 (permalink)  
Antiguo 13/11/2012, 18:44
Avatar de rodeirojg  
Fecha de Ingreso: junio-2012
Ubicación: Buenos Aires
Mensajes: 86
Antigüedad: 12 años, 5 meses
Puntos: 2
Respuesta: Javascript para ir a determinada línea

Cita:
Iniciado por IsaBelM Ver Mensaje
la deceleración es sencilla de lograr

sabemos de donde partimos y hasta donde tenemos que llegar
SOS INCREIBLE!!! Yo realmente estoy empezando, sólo sé lo básico en HTML y mi especialidad es el diseño, pero aún sabiendo lo básico puedo decirte que sos una genia! MIL GRACIAS ISABEL!!!!
__________________
Julian G. Rodeiro
Encargado del área de Diseño en:
www.brandestudio.com.ar

Etiquetas: links
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 07:41.