Foros del Web » Programando para Internet » Javascript »

como llamar a una funcion javascript al hacer scroll

Estas en el tema de como llamar a una funcion javascript al hacer scroll en el foro de Javascript en Foros del Web. Necesito llamar a una funcion javascript cuando el usuario hacer scroll vertical desplazando 200 pixeles, solo con javascript sin jquery, saludos....
  #1 (permalink)  
Antiguo 23/03/2015, 09:53
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 13 años, 3 meses
Puntos: 10
como llamar a una funcion javascript al hacer scroll

Necesito llamar a una funcion javascript cuando el usuario hacer scroll vertical desplazando 200 pixeles, solo con javascript sin jquery, saludos.
  #2 (permalink)  
Antiguo 23/03/2015, 10:16
Avatar de MaNuX0218  
Fecha de Ingreso: marzo-2014
Mensajes: 787
Antigüedad: 10 años, 1 mes
Puntos: 67
Respuesta: como llamar a una funcion javascript al hacer scroll

Código Javascript:
Ver original
  1. function MiFuncion(){
  2. .......
  3. }

Código HTML:
Ver original
  1. <body OnScroll="MiFuncion()">

Espero te sirva.

Saludos.
__________________
No te preocupes si tu código no funciona bien. Si todo lo hiciera, no tendrías trabajo.
  #3 (permalink)  
Antiguo 23/03/2015, 10:17
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: como llamar a una funcion javascript al hacer scroll

Utiliza el evento scroll y con la propiedad scrollY (o pageYOffset si buscas compatibilidad con navegadores antiguos), obtén la cantidad de píxeles desplazados.

Código Javascript:
Ver original
  1. window.addEventListener("scroll", function(){
  2.     if (this.scrollY >= 200){
  3.         tuFuncion();
  4.     }
  5. }, false);

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
  #4 (permalink)  
Antiguo 23/03/2015, 10:49
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 13 años, 3 meses
Puntos: 10
Respuesta: como llamar a una funcion javascript al hacer scroll

Muchas gracias eso es lo que queria, pero como lo podria hacer para llamar a la funcion cada vez que se desplacen 200px no a partir de 200 pixeles llamarla constantemente mientra se hace scroll.

saludos
  #5 (permalink)  
Antiguo 23/03/2015, 10:59
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: como llamar a una funcion javascript al hacer scroll

La condición tendría que determinar que la cantidad de píxeles desplazados sea divisible por 200.

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 23/03/2015, 11:15
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 13 años, 3 meses
Puntos: 10
Respuesta: como llamar a una funcion javascript al hacer scroll

Gracias nuevamente por tu ayuda, volviendo al tema no hay manera de que me funcione profe este condicional sin exito.

Código Javascript:
Ver original
  1. if((this.scrolly/200)>=1)
  #7 (permalink)  
Antiguo 23/03/2015, 11:19
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: como llamar a una funcion javascript al hacer scroll

Cuando un número es divisible por otro, el residuo siempre es igual a cero. En JavaScript, así como en otros lenguajes de programación, puedes obtener el residuo de una división haciendo uso del operador %.

Código Javascript:
Ver original
  1. if (this.scrollY % 200 == 0){
  2.     //...
  3. }

Por otra parte, la propiedad offsetTop no puede ser aplicada de esa manera. Recuerda que estás obteniendo la cantidad de píxeles desplazados.

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

Última edición por Alexis88; 23/03/2015 a las 11:37
  #8 (permalink)  
Antiguo 23/03/2015, 11:42
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 13 años, 3 meses
Puntos: 10
Respuesta: como llamar a una funcion javascript al hacer scroll

Me vas a matar pero bueno ahora esta el problema que solo deberia llamar a la funcion cuando se hace scroll para abajo no para arriba, si me das una pista intento solucionarlo yo solo.
saludos.
  #9 (permalink)  
Antiguo 23/03/2015, 11:52
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: como llamar a una funcion javascript al hacer scroll

Cada vez que te desplaces, guarda la cantidad de píxeles desplazados en una variable, luego, cuando te vuelvas a desplazar, comparas la nueva cantidad de píxeles desplazados con la que guardaste previamente; si la cantidad actual es mayor a la anterior, quiere decir que te desplazaste hacia abajo, caso contrario, hacia arriba.

Esto ya no es problema de programación sino de lógica.
__________________
«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
  #10 (permalink)  
Antiguo 23/03/2015, 12:20
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 13 años, 3 meses
Puntos: 10
Respuesta: como llamar a una funcion javascript al hacer scroll

Uno ultima cosa, realmente esto lo quiero para evitar un paginador osea ir cargando contenido pero veo que el condicional no me funciona porque aveces no me carga contenido, que podria hacer?
saludos.
  #11 (permalink)  
Antiguo 23/03/2015, 12:37
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: como llamar a una funcion javascript al hacer scroll

¿Estás intentando hacer un cargador de contenido al bajar con la barra de desplazamiento? Si es así, en lugar de cargar contenido nuevo cada 200 píxeles, hazlo cuando llegues al final.

Código Javascript:
Ver original
  1. //Si la cantidad de píxeles desplazados más la altura interna de la ventana (el contenido de la página y el espacio que ocupan las barras de desplazamiento) es igual a la altura total del documento HTML (incluyendo bordes, márgenes, las barras)
  2. if (this.scrollY + this.innerHeight == document.documentElement.offsetHeight){
  3.     //...
  4. }

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

Última edición por Alexis88; 23/03/2015 a las 16:39 Razón: Paréntesis de más
  #12 (permalink)  
Antiguo 23/03/2015, 13:14
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 13 años, 3 meses
Puntos: 10
Respuesta: como llamar a una funcion javascript al hacer scroll

Exactamente eso era lo que necesitaba, muchas gracias nuevamente.
Saludos.

Etiquetas: funcion, 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 18:07.