Estoy comenzando con JQuery y Javascript y mientras estaba haciendo un ejercicio de parallax me surgió una duda.
Elaboré un código que mediante el método .on() de Jquery y una función que hice, hace que cada que el usuario haga scroll en una página se escriba el valor de una variable en todos los párrafos. El valor de dicha variable es el resultado de una operación matemática entre el valor del scroll (que capturé en una variable con el método .scrollTop()) y un segundo valor.
La idea es que ese número va cambiando a medida que yo muevo el scroll, por que el valor de la variable depende del valor de dicho scroll.
El siguiente código hace que lo que les comento suceda de esa manera:
Código :
$(window).on("scroll", parallax); function parallax(){ var scrollSize=$(window).scrollTop(); var scrollParallax=Number(scrollSize*0.5); $("p").text(scrollParallax); }
Mi duda está en lo siguiente, cuando traté de poner ese segundo valor que les menciono como un parámetro a pasar en la función, el valor que se muestra en los párrafos ya no es cambiante, es siempre el valor del primer cálculo cuando muevo el scroll, ya no se calcula el valor de "scrollParallax" cada que cambia el valor de "scrollSize", que es la variable en la que almaceno la posición del scroll que constantemente estoy modificando y que debería modificar mi variable "scrollParallax" y por tanto modificar constantemente el número que aparece en los párrafos de mi sitio web.
Por qué sucede esto??
Les dejo el código donde uso parámetro en la función detonada al hacer scroll, en lugar de usar un valor fijo.
$(window).on("scroll", parallax(0.5));
function parallax(medida){
var scrollSize=$(window).scrollTop();
var scrollParallax=Number(scrollSize*medida);
$("p").text(scrollParallax);
}
Muchas gracias por su respuesta.
Postdata:
Por favor no enfoquen dicha respuesta en cómo puedo hacer un parallax scrolling o algo así, lo que quiero saber en realidad es qué está pasando con el código, qué es lo que hace que con el segundo código mi variable no se recalcule o la función no se ejecute sino una vez o lo que sea que esté sucediendo
De nuevo gracias.