Scroll navegación, práctica de clase que no entiendo
Publicado por Fran (7 intervenciones) el 08/05/2017 20:54:12
Hola,
Estoy haciendo una práctica para clase de Jquery y no entiendo el funcionamiento del código. ¿Alguien me podría dar algo de luz sobre este fragmento?
El resultado es este (la demo del sistema) http://www.jqueryscript.net/demo/Create-A-One-Page-Scrolling-Website-with-jQuery-CSS3/
En la primera función se obtiene la posición de los elementos con el método offset, pero no entiendo por qué primero se extrae la información del top para luego restarla (return $(id).offset().top - offset;).
El resto del código me provoca muchas dudas, así que creo que si recibo una interpretación de un desarrollador podré comprenderlo mejor.
Muchas gracias,
Código:
Estoy haciendo una práctica para clase de Jquery y no entiendo el funcionamiento del código. ¿Alguien me podría dar algo de luz sobre este fragmento?
El resultado es este (la demo del sistema) http://www.jqueryscript.net/demo/Create-A-One-Page-Scrolling-Website-with-jQuery-CSS3/
En la primera función se obtiene la posición de los elementos con el método offset, pero no entiendo por qué primero se extrae la información del top para luego restarla (return $(id).offset().top - offset;).
El resto del código me provoca muchas dudas, así que creo que si recibo una interpretación de un desarrollador podré comprenderlo mejor.
Muchas gracias,
Código:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<script>
function getTargetTop(elem){
var id = elem.attr("href");
var offset = 60;
return $(id).offset().top - offset;
}
$(window).scroll(function(e){
isSelected($(window).scrollTop())
});
var sections = $('a[href^="#"]');
function isSelected(scrolledTo){
var threshold = 100;
var i;
for (i = 0; i < sections.length; i++) {
var section = $(sections[i]);
var target = getTargetTop(section);
if (scrolledTo > target - threshold && scrolledTo < target + threshold) {
sections.removeClass("active");
section.addClass("active");
}
};
}
</script>
Valora esta pregunta
0