You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
2.2 KiB
73 lines
2.2 KiB
"use strict";
|
|
|
|
var windowHeight;
|
|
var scrollTS = 0;
|
|
var lastScroll = 0;
|
|
|
|
window.requestAnimationFrame (animateScroll);
|
|
|
|
function computeWindowHeight() {
|
|
var myHeight = 0;
|
|
if( typeof( window.innerWidth ) == 'number' ) {
|
|
//Non-IE
|
|
myHeight = window.innerHeight;
|
|
} else if( document.documentElement && ( document.documentElement.clientHeight ) ) {
|
|
//IE 6+ in 'standards compliant mode'
|
|
myHeight = document.documentElement.clientHeight;
|
|
} else if( document.body && ( document.body.clientHeight ) ) {
|
|
//IE 4 compatible
|
|
myHeight = document.body.clientHeight;
|
|
}
|
|
return (myHeight);
|
|
}
|
|
|
|
windowHeight = computeWindowHeight();
|
|
|
|
function getScroll() {
|
|
var scrOfY = 0;
|
|
if( typeof( window.pageYOffset ) == 'number' ) {
|
|
//Netscape compliant
|
|
scrOfY = window.pageYOffset;
|
|
} else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
|
|
//DOM compliant
|
|
scrOfY = document.body.scrollTop;
|
|
} else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
|
|
//IE6 standards compliant mode
|
|
scrOfY = document.documentElement.scrollTop;
|
|
}
|
|
return (scrOfY);
|
|
}
|
|
|
|
function computeScroll () {
|
|
var percentage = Math.round (getScroll() / (document.body.offsetHeight - windowHeight) * 100);
|
|
return (percentage);
|
|
}
|
|
|
|
function animateScroll (timestamp) {
|
|
if (timestamp - scrollTS >= 500) {
|
|
scrollTS = timestamp;
|
|
|
|
var newScroll = computeScroll();
|
|
|
|
if (newScroll !== lastScroll) {
|
|
lastScroll = newScroll;
|
|
document.getElementById ("scrollBar").style.width = newScroll + "%";
|
|
}
|
|
|
|
}
|
|
|
|
window.requestAnimationFrame (animateScroll);
|
|
}
|
|
|
|
document.getElementById("toc").addEventListener("mouseover", makeTOCTransparent);
|
|
document.getElementById("toc").addEventListener("mouseout", makeTOCOpaque);
|
|
|
|
function makeTOCTransparent (evt) {
|
|
// document.getElementById("toc").getElementsByTagName("ul")[0].style.color = "red";
|
|
document.getElementById("toc").getElementsByTagName("ul")[0].className = "tocHover";
|
|
};
|
|
|
|
function makeTOCOpaque (evt) {
|
|
// document.getElementById("toc").getElementsByTagName("ul")[0].style.color = "rgba(255,255,255,1.0)";
|
|
document.getElementById("toc").getElementsByTagName("ul")[0].className = "";
|
|
} |