Как определить высоту браузера по body и html?
в современных браузерах вьюпорт можно померить window.innerHeight.

а вообще может ето пригодится 

document.documentElement.[scrollHeight,clientHeight,offsetHeight]
document.body.[scrollHeight,clientHeight,offsetHeight]
window.[inner,outer][Height,Width]
Тут написано. Добавить особо то и нечего =)
И я бы немного изменил код:
1. Не стоит высчитывать долю в каждой проверке, лучше сохранить ее в переменной и ею уже оперировать.
2. Будет более читабельно, если использовать else if/**
 * Определяет позицию скролла по отношению к высоте полоски скролла.
 * @return {Number} 
 */
function getScrollPosition() {
	var scrollHeight = document.documentElement.scrollHeight;
	var scrollTop = window.pageYOffset || document.documentElement.scrollTop;

	return Math.round(scrollTop/scrollHeight);
};

function scrollfunction() {
	var body = document.body;
	var scrollPosition = getScrollPosition();

	if (scrollPosition < 0.07) {
		body.className = "white";
	} else if (scrollPosition < 0.20) {
		body.className = "red";
	} else if (scrollPosition < 0.30) {
		body.className = "violet";
	} else if (scrollPosition < 0.45) {
		body.className = "blue";
	} else if (scrollPosition < 0.60) {
		body.className = "green";
	} else if (scrollPosition < 0.75) {
		body.className = "orange";
	} else if (scrollPosition < 0.96) {
		body.className = "asphalt";
	};
};