-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathpage_scroll_indicator.js
36 lines (26 loc) · 1.21 KB
/
page_scroll_indicator.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
var PageScrollIndicator = PageScrollIndicator || {};
PageScrollIndicator.createProgressBar = function(progressBarLocation, contentToTrack) {
// Create the container div
var progressContElement = document.createElement("div");
progressContElement.id = "progress-cont";
// Create the progress bar itself
var progressBarElement = document.createElement("div");
progressBarElement.id = "progress-bar";
progressBarElement.style.width = "0%";
progressContElement.appendChild(progressBarElement);
var locationObject = document.getElementById(progressBarLocation);
if (locationObject.children === undefined) {
locationObject.appendChild(progressContElement);
} else {
locationObject.insertBefore(progressContElement, locationObject.firstChild);
}
// Event handler that updates the width of the progress bar based
// on how far the contentToTrack elemt has been scrolled
window.onscroll = function(event) {
var pageHeight = window.innerHeight;
var container = document.getElementById(contentToTrack);
var adjustedHeight = container.clientHeight - pageHeight;
var progress = ((window.pageYOffset / adjustedHeight) * 100);
progressBarElement.style.width = progress + "%";
}
}