Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Исчезающая шапка при прокрутке страницы (https://javascript.ru/forum/dom-window/59141-ischezayushhaya-shapka-pri-prokrutke-stranicy.html)

russia091 05.11.2015 11:51

Пожалуйста:

http://start-in-game.ru/


Когда Opacity = 0 , то dysplay:none появляется.
Но уменьшение opacity не имеет тормозов.

ruslan_mart 05.11.2015 12:15

window.addEventListener('DOMContentLoaded', function() {
	var elem = document.querySelector('.opacTop'),
		body = document.body,
		html = document.documentElement;
		isVisible = true,
        maxHeight = 200;
 
	window.addEventListener('scroll', function() {
		var scrollHeight = (html.scrollHeight || body.scrollHeight) - this.innerHeight,
			scrollTop = html.scrollTop || body.scrollTop || 0,
			value = 1 - 1 / Math.min(scrollHeight, maxHeight) * Math.min(scrollTop, maxHeight);
		elem.style.opacity = value;
		if(isVisible != !!value) {
			elem.style.display = isVisible ? 'none' : '';
			isVisible = !isVisible;
		}
	});
});


Вот так точно работать будет. :)

рони 05.11.2015 12:25

Ruslan_xDD,
мысли вслух:
расчитывать что value будет 1 или 0 опасная практика...

russia091 05.11.2015 13:13

Отлично, все работает:victory: Я тебя поздравляю, ты первый кто написал такой скрипт для html сайтов. В гугле до этого я такого не находил.

IE тоже кстати читает этот скрипт.

Спасибо тебе :yes:

ruslan_mart 05.11.2015 13:28

рони, тут всё чётко просчитано. :) Другим значение, по сути, не может быть.


Часовой пояс GMT +3, время: 01:30.