-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
60 lines (39 loc) · 1.57 KB
/
index.js
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
//Restituisce la posizione dell'elemento passato come parametro
function getPosition(elem){
var r = elem.getBoundingClientRect();
return r.top;
}
var fadeOutRange = -20; //Posizione di uscita del titolo
window.onload = function(){
//Array di elementi che verranno raggiungi dallo scroll
var title = document.getElementsByClassName('indexjs');
elementi = [];
//Titoli dei tag .indexjs che faranno parte dell'indice
var titoli = document.getElementsByClassName('indexjs_title');
var posY = 0; //Posizione Y di ogni .indexjs
for(var i=0; i<title.length; i++){
posY = getPosition(title[i]);
//Definisco l'oggetto che contiene tutti i dati rilevati
elementi[i] = {
tag:title[i],
h:posY,
son:titoli[i],
}
posY = 0;
}
}
window.onscroll = function(){
var s = ""; //DA ELEMINARE
for(var i=0; i<elementi.length; i++){
elementi[i].h = getPosition(elementi[i].tag); //Aggiorno la posizione di ogni elemento
s += elementi[i].h + ' '; //DA ELEMINARE
document.getElementById('esito').innerHTML = s; //DA ELEMINARE
//Se l'elemento è nel range, allora viene selezionato
if(elementi[i].h - window.innerHeight < 0 && elementi[i].h > fadeOutRange){
elementi[i].son.classList.add('color'); //Setto l'animazione di entrata
} else {
elementi[i].son.classList.remove('color');
}
}
}
//http://jsfiddle.net/QxYDe/4/