Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Cambiar acción

Estas en el tema de Cambiar acción en el foro de Javascript en Foros del Web. Hola de nuevo, tengo una idea en mente y quiero saber como podría hacerlo y si es posible que no tengo ni idea. Lo que ...
  #1 (permalink)  
Antiguo 17/08/2014, 15:05
Avatar de AitorDB  
Fecha de Ingreso: agosto-2014
Ubicación: Cádiz, España
Mensajes: 52
Antigüedad: 10 años, 4 meses
Puntos: 5
Cambiar acción

Hola de nuevo, tengo una idea en mente y quiero saber como podría hacerlo y si es posible que no tengo ni idea.

Lo que quiero es que con la rueda del raton en vez de hacer scroll o una vez que haya alcanzado el final de la pagina por ejemplo, se ejecute una función.

¿Es esto posible?

Gracias por vuestra atención.
Saludos!
  #2 (permalink)  
Antiguo 17/08/2014, 15:27
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años, 1 mes
Puntos: 977
Respuesta: Cambiar acción

Al hacer rodar la rueda del ratón, también se produce el evento scroll, por lo que solamente te quedaría evaluar si se alcanzó el final de la página y, de ser así, ejecutar la función en cuestión.

Código Javascript:
Ver original
  1. function foo(){
  2.     console.log("Llegaste al final");
  3. }
  4. window.addEventListener("scroll", function(){
  5.     if (this.scrollY + this.innerHeight == document.documentElement.offsetHeight)
  6.         foo();
  7. }, false);

Si la cantidad de píxeles desplazados por la barra de desplazamiento vertical más la altura de la ventana es igual a la altura del documento (el elemento <html>), sabrás que llegaste al final de la página.

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 18/08/2014, 04:51
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 6 meses
Puntos: 1012
Respuesta: Cambiar acción

scrollY no es compatible con ie9. si quieres compatibilidad con ese navegador, has de usar pageYOffset. si quieres compatibilidad con versiones más antiguas de ese navegador, lee esto

en cuanto a innerHeight. si quieres compatibilidad con ie8-, has de usar document.documentElement.clientHeight
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #4 (permalink)  
Antiguo 19/08/2014, 08:30
Avatar de AitorDB  
Fecha de Ingreso: agosto-2014
Ubicación: Cádiz, España
Mensajes: 52
Antigüedad: 10 años, 4 meses
Puntos: 5
Respuesta: Cambiar acción

Muchas gracias a los dos, probaré y os comento :D

Edito:

Después de haber estado comprobando con el código de Alexis88 he acabado usando un plugin de JQuery que he encontrado por ahí, el código de Alexis iba bien solo que me marcaba al llegar arriba en vez de abajo ¿será por usar porcentajes en CSS? De momento no tengo ni idea ahora me podré a revisarlo... Con respecto a lo del plugin de JQuery se llama Mouse Wheel (https://github.com/brandonaaron/jquery-mousewheel/) y me ha venido perfecto ya que además necesitaba controlar si el movimiento del scroll era hacia arriba o hacia abajo y además también saber si movían la rueda del ratón.

IsaBelM muchas gracias por tu comentario también, en cuanto empiece a ampliar la compatibilidad con otros navegadores me vendrá de perlas.

Gracias de nuevo

Última edición por AitorDB; 19/08/2014 a las 09:15
  #5 (permalink)  
Antiguo 19/08/2014, 09:34
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años, 1 mes
Puntos: 977
Respuesta: Cambiar acción

Cita:
Iniciado por AitorDB Ver Mensaje
el código de Alexis iba bien solo que me marcaba al llegar arriba en vez de abajo
Es extraño, porque la operación es correcta y funciona como se espera (probar con la consola activa). Lo del plugin me parece interesante por el tema de que te permite saber si te desplazas hacia arriba o abajo, aunque eso también podría hacerse con algunas sumas y restas, pero al menos te ahorras el trabajo de hacerlas.

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/08/2014, 10:48
Avatar de AitorDB  
Fecha de Ingreso: agosto-2014
Ubicación: Cádiz, España
Mensajes: 52
Antigüedad: 10 años, 4 meses
Puntos: 5
Respuesta: Cambiar acción

Por eso he supuesto que será por los porcentajes, la verdad es que ni idea, porque como tu lo has pasado funciona a la perfección.

Saludos!

Etiquetas: Ninguno
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:10.