Foros del Web » Programando para Internet » Javascript »

Scroll "animado"

Estas en el tema de Scroll "animado" en el foro de Javascript en Foros del Web. Buenas, me gustaría poner esta "animación" a mi web. Es decir, cuando yo estoy en la parte superior y hago click en un enlace a ...
  #1 (permalink)  
Antiguo 19/01/2015, 11:26
Avatar de legomolina  
Fecha de Ingreso: junio-2011
Ubicación: Valencia
Mensajes: 165
Antigüedad: 12 años, 11 meses
Puntos: 3
Scroll "animado"

Buenas, me gustaría poner esta "animación" a mi web. Es decir, cuando yo estoy en la parte superior y hago click en un enlace a la misma página (punto de ancla) donde el scroll se mueve (la página baja), pues que no fuese un salto sino que fuese bajando como si lo moviese el user.
http://gyazo.com/7a55b2c730103c43d059254b941316d5
Algo así pero que también valiese para bajar.
Gracias
  #2 (permalink)  
Antiguo 19/01/2015, 15:26
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 9 meses
Puntos: 2114
Respuesta: Scroll "animado"

Lo muevo al foro de JavaScript porque no tiene nada que ver con CSS.
__________________
(:
  #3 (permalink)  
Antiguo 19/01/2015, 16:47
 
Fecha de Ingreso: agosto-2013
Ubicación: A Coruña
Mensajes: 54
Antigüedad: 10 años, 8 meses
Puntos: 14
Respuesta: Scroll "animado"

Hola. Te dejo este ejemplo que he elaborado a ver si es lo que buscas:
[URL]http://jsfiddle.net/go3vvzcn/33/[/URL]
Espero haberte ayudado.
  #4 (permalink)  
Antiguo 19/01/2015, 16:54
Avatar de legomolina  
Fecha de Ingreso: junio-2011
Ubicación: Valencia
Mensajes: 165
Antigüedad: 12 años, 11 meses
Puntos: 3
Respuesta: Scroll "animado"

Eso es. Perfecto. Muchas gracias :) Si tengo alguna duda respondo a este post. Gracias otra vez
  #5 (permalink)  
Antiguo 19/01/2015, 17:07
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 6 meses
Puntos: 977
Respuesta: Scroll "animado"

Yo te dejo otro pero sin jQuery ya que no estamos en ese foro.

Código Javascript:
Ver original
  1. [].forEach.call(document.querySelectorAll("a"), function(a){
  2.     var elem = document.querySelector(a.getAttribute("href")), interval, val;
  3.     a.addEventListener("click", function(event){
  4.         val = 0;
  5.         event.preventDefault();
  6.         interval = setInterval(function(){
  7.             val += 10;
  8.             document.body.parentNode.scrollTop = val;
  9.             document.body.scrollTop = val;
  10.            
  11.             if (val >= elem.offsetTop){
  12.                 document.body.parentNode.scrollTop = elem.offsetTop;
  13.                 document.body.scrollTop = elem.offsetTop;
  14.                 clearInterval(interval);
  15.             }
  16.         }, 1);
  17.     }, false);
  18. });

DEMO

Lo que hago es simple. Recorro el conjunto de enlaces y por cada uno, tomo al elemento al que apuntan, además de crear dos variables que usaré más adelante. Luego, cuando de un clic sobre cualquier enlace, inicializo el valor de val en cero, prevengo el accionar del clickeado el cual sería el scrolling hasta la ubicación del elemento al que apunta.

Enseguida, utilizo un temporizador el cual asigno a interval y por cada ejecución de la función que contiene, sumo 10 a val y asigno dicho valor al atributo scrollTop de los elementos <body> y <html> para así ir moviendo el scroll de la página de a pocos. Cuando el valor de val sea mayor o igual que el de la ubicación del elemento al que el enlace está apuntando, fijamos el valor del atributo scrollTop de los elementos <body> y <html> en dicho valor (puede que a veces se pase algunos píxeles, muy pocos) y desactivo el temporizador. Todo esto se ejecutará cada milésima de segundo, dándole el efecto de desplazamiento suave y continuo.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #6 (permalink)  
Antiguo 19/01/2015, 17:33
Avatar de legomolina  
Fecha de Ingreso: junio-2011
Ubicación: Valencia
Mensajes: 165
Antigüedad: 12 años, 11 meses
Puntos: 3
Respuesta: Scroll "animado"

Muchas gracias a ambos :)

Etiquetas: css, página, scroll
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 08:58.