Foros del Web » Programando para Internet » Javascript »

Iniciar funciones según la posición del SCROLL

Estas en el tema de Iniciar funciones según la posición del SCROLL en el foro de Javascript en Foros del Web. Hola Por favor necesito una explicación básica de, cómo iniciar animaciones a partir de la posición del scroll. La verdad nunca le he prestado mucha ...
  #1 (permalink)  
Antiguo 12/09/2014, 10:06
Avatar de eduardobrutaldeath  
Fecha de Ingreso: agosto-2013
Ubicación: América
Mensajes: 306
Antigüedad: 10 años, 8 meses
Puntos: 3
Iniciar funciones según la posición del SCROLL

Hola

Por favor necesito una explicación básica de, cómo iniciar animaciones a partir de la posición del scroll. La verdad nunca le he prestado mucha atención al scroll, pero, ahora con los nuevas tendencias, me parece necesario. Me explico por si no me han entendido :

Por ejemplo en Facebook, cuando haces scroll hasta el final de un grupo de imágenes, se cargan otras, y cuando nuevamente llegas al final carga otro grupo, y así hasta que se acabe el banco de imágenes.

He visto que hay un Plugin de Jquery para hacer eso. Yo quisiera hacerlo sólo con el Framework, sin necesidad de Plugins, o sino con Java Script puro. Aquí hay unos ejemplos :

http://ddknoll.github.io/Instagram-Infinite-Scroll/
http://www.ehowenespanol.com/

En general, me gustaría controlar mi web con el SCROLL. Que se ejecuten animaciones cuando el scroll esté a un determinado porcentaje.

Última edición por eduardobrutaldeath; 12/09/2014 a las 10:45
  #2 (permalink)  
Antiguo 12/09/2014, 11:35
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: Iniciar funciones según la posición del SCROLL

Básicamente tendrías que trabajar con el evento scroll e ir tomando la cantidad de píxeles desplazados verticalmente con la propiedad scrollY.

Un ejemplo de esto cuando, por ejemplo, se desplaza unos 150 a más píxeles:

Código Javascript:
Ver original
  1. window.addEventListener("scroll", function(){
  2.     if (this.scrollY >= 150){
  3.         console.log("Te has desplazado 150 píxeles o más desde la parte superior del documento");
  4.     }
  5. }, false);

Acá puedes ver un ejemplo que di en otro tema en el que se requería que un vídeo se reproduzca solo cuando sea visible al bajar con la barra vertical.

Y aquí puedes ver otro que hice en el que un conjunto de elementos <div> se desplazan de izquierda a derecha cuando son visibles luego de desplazarse hasta sus respectivas posiciones con la barra vertical.

Como verás, todo está en trabajar con la propiedad scrollY para saber cuánto nos hemos desplazado verticalmente y así realizar determinadas acciones.

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
  #3 (permalink)  
Antiguo 12/09/2014, 11:51
Avatar de eduardobrutaldeath  
Fecha de Ingreso: agosto-2013
Ubicación: América
Mensajes: 306
Antigüedad: 10 años, 8 meses
Puntos: 3
Respuesta: Iniciar funciones según la posición del SCROLL

Cita:
Iniciado por Alexis88 Ver Mensaje
Básicamente tendrías que trabajar con el evento scroll e ir tomando la cantidad de píxeles desplazados verticalmente con la propiedad scrollY.

Un ejemplo de esto cuando, por ejemplo, se desplaza unos 150 a más píxeles:

Código Javascript:
Ver original
  1. window.addEventListener("scroll", function(){
  2.     if (this.scrollY >= 150){
  3.         console.log("Te has desplazado 150 píxeles o más desde la parte superior del documento");
  4.     }
  5. }, false);

Acá puedes ver un ejemplo que di en otro tema en el que se requería que un vídeo se reproduzca solo cuando sea visible al bajar con la barra vertical.

Y aquí puedes ver otro que hice en el que un conjunto de elementos <div> se desplazan de izquierda a derecha cuando son visibles luego de desplazarse hasta sus respectivas posiciones con la barra vertical.

Como verás, todo está en trabajar con la propiedad scrollY para saber cuánto nos hemos desplazado verticalmente y así realizar determinadas acciones.

Saludos
Gracias.

Toda mi página está hecha con porcentajes, de alto y ancho

¿Puede funcionar con porcentajes el Scroll en lugar de pixeles?
  #4 (permalink)  
Antiguo 12/09/2014, 12:56
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: Iniciar funciones según la posición del SCROLL

Probando lo sabrás.

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
  #5 (permalink)  
Antiguo 12/09/2014, 15:06
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: Iniciar funciones según la posición del SCROLL

Ojo con esa propiedad: no está ampliamente soportada.
http://help.dottoro.com/ljqklmpm.php
Es más segura esta opción:
Código:
var scrollY=self.pageYOffset || (document.body.scrollTop+document.documentElement.scrollTop);
  #6 (permalink)  
Antiguo 12/09/2014, 15:54
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: Iniciar funciones según la posición del SCROLL

Cita:
Iniciado por Panino5001 Ver Mensaje
Ojo con esa propiedad: no está ampliamente soportada...
En la documentación que le dejé, también se explica eso.

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
  #7 (permalink)  
Antiguo 13/09/2014, 11:46
Avatar de eduardobrutaldeath  
Fecha de Ingreso: agosto-2013
Ubicación: América
Mensajes: 306
Antigüedad: 10 años, 8 meses
Puntos: 3
Respuesta: Iniciar funciones según la posición del SCROLL

Cita:
Iniciado por Alexis88 Ver Mensaje
Probando lo sabrás.

Saludos
NO se puede T_T
Sólo con pixeles funciona
  #8 (permalink)  
Antiguo 13/09/2014, 11:51
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: Iniciar funciones según la posición del SCROLL

¿Y has probado con calcular el porcentaje? Es decir, aplicando la regla de tres simple, si, por ejemplo, la altura del documento fuera de 768 píxeles y quisiera que ocurra algo al bajar a la mitad (50%), simplemente multiplico ese 50 por los 768 píxeles y lo divido entre 100 pues la altura dada representa al 100%. También podrías trabajar con fracciones y simplemente dividir los 768 píxeles entre 2, tú decides.

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
  #9 (permalink)  
Antiguo 13/09/2014, 14:59
Avatar de eduardobrutaldeath  
Fecha de Ingreso: agosto-2013
Ubicación: América
Mensajes: 306
Antigüedad: 10 años, 8 meses
Puntos: 3
Respuesta: Iniciar funciones según la posición del SCROLL

Cita:
Iniciado por Alexis88 Ver Mensaje
¿Y has probado con calcular el porcentaje? Es decir, aplicando la regla de tres simple, si, por ejemplo, la altura del documento fuera de 768 píxeles y quisiera que ocurra algo al bajar a la mitad (50%), simplemente multiplico ese 50 por los 768 píxeles y lo divido entre 100 pues la altura dada representa al 100%. También podrías trabajar con fracciones y simplemente dividir los 768 píxeles entre 2, tú decides.

Saludos
Hola

Mi página tiene 3 secciones, cada una mide 100%

Código HTML:
Ver original
  1.  100%
  2.  </section>
  3.  
  4.  100%
  5.  </section>
  6.  
  7.  100%
  8.  </section>
  9. </html>

Intenté desplazar la página 100% hacia abajo, o sea 768 pixeles (que es la resolución total de mi pantalla)

Código Javascript:
Ver original
  1. var scroll = window.screen.height; //768
  2.  
  3. $('span').click(function(){
  4.  $( window ).scrollTop( 768 );
  5. });

Cuando hago lo de arriba el cálculo sale mal, es decir, la sección no encaja exactamente sino que pasa por un poco a la SECTION siguiente... Cuando le resto 100 a los 768 encaja perfectamente. ¿Alguien sabe por qué pasa esto? Presumo que la barra puede medir 100 pixeles o quizá 80 y las flechitas 5px. ¿Cuánto mide la barra del scroll?
  #10 (permalink)  
Antiguo 13/09/2014, 15:11
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: Iniciar funciones según la posición del SCROLL

El ancho de la barra de scroll en desktop suele ser de 17px. Para calcular el alto del viewport, usando el doctype de html5, que omitiste, podés usar:
Código:
var hViewport=document.documentElement.clientHeight;
  #11 (permalink)  
Antiguo 13/09/2014, 15:24
Avatar de eduardobrutaldeath  
Fecha de Ingreso: agosto-2013
Ubicación: América
Mensajes: 306
Antigüedad: 10 años, 8 meses
Puntos: 3
Respuesta: Iniciar funciones según la posición del SCROLL

Cita:
Iniciado por Panino5001 Ver Mensaje
El ancho de la barra de scroll en desktop suele ser de 17px. Para calcular el alto del viewport, usando el doctype de html5, que omitiste, podés usar:
Código:
var hViewport=document.documentElement.clientHeight;
Hola

Perdón por la ignorancia pero, ¿con viewport te refieres a toda la barra del scroll?
viewport sólo lo había escuchado como valor del atributo NAME de la etiqueta META

Probé el código que pusiste y salió la medida que saqué luego de restar los 100... Bueno en realidad salió 667 (1 menos de lo que yo calculé), o sea que, ese viewport que mencionas debe ser la barra del scroll sin contar las flechas ¿?
  #12 (permalink)  
Antiguo 13/09/2014, 15:59
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: Iniciar funciones según la posición del SCROLL

El viewport es la porción "visible" de la ventana. Hay un tag de html5 del mismo nombre, pero a lo que yo me refería es al rectángulo visible de la ventana, al espacio de visualización real de la pantalla.
  #13 (permalink)  
Antiguo 13/09/2014, 17:07
Avatar de eduardobrutaldeath  
Fecha de Ingreso: agosto-2013
Ubicación: América
Mensajes: 306
Antigüedad: 10 años, 8 meses
Puntos: 3
Respuesta: Iniciar funciones según la posición del SCROLL

Cita:
Iniciado por Panino5001 Ver Mensaje
El viewport es la porción "visible" de la ventana. Hay un tag de html5 del mismo nombre, pero a lo que yo me refería es al rectángulo visible de la ventana, al espacio de visualización real de la pantalla.
Ah, entonces lo que antes hice fue calcular el alto de toda la pantalla, incluido el menú del navegador, por eso salían 100 pixeles más; en cambio con tu código sólo la parte visible. Bueno, gracias.

Etiquetas: funciones, scroll, según
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 09:53.