Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Видимость блока на экране (https://javascript.ru/forum/css-html/49244-vidimost-bloka-na-ehkrane.html)

MadChild 04.08.2014 17:08

Видимость блока на экране
 
Добрый день.
У меня есть блок, который становится зафиксированным при прокрутке страницы. То есть крутим страницу, когда страница пролистывается более чем на 150px [$(window).scrollTop()], то блок становится position:fixed
На некоторых страницах этот блок длинный и при прокрутке страницы до конца он наезжает на футер, чего не хотелось бы.
В голове есть только 2 возможных решениях:

1) считаем суммарную ширину страницы, отнимаем высоту экрана, отнимаем высоту футера и проверяем.
Если скролл страницы дошел до полученнго значения, то блоку ставим position:relative и margin-top

2) если футер попал в поле отображения на экране, то блоку ставим position:relative и margin-top


вот только я не знаю,
как подсчитать общую высоту всей страницы(не путать с высотой экрана)
или как проверить, видим футер на странице или еще находится за пределами экрана

ixth 04.08.2014 18:18

Посмотри как тут сделано: http://codepen.io/ixth/pen/nrJla

MadChild 05.08.2014 10:48

Цитата:

Сообщение от Rise (Сообщение 324266)
MadChild,
var f = $('#footer');
$(window).scroll(function() {
	var w = $(this);
	if (w.scrollTop() > (f.offset().top - w.height())) {
		// footer в окне
	} else {
		// footer вне окна
	}
});

то что надо

yurik417 25.11.2014 02:53

Воспользуйтесь плагином http://masscode.ru/index.php/k2/item/48-lifixar
У него есть замечательный параметр "wrapper" как раз для этих целей


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