Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   при прокрутке узнать расстояние до дива (https://javascript.ru/forum/dom-window/54464-pri-prokrutke-uznat-rasstoyanie-do-diva.html)

Trues 18.03.2015 13:49

при прокрутке узнать расстояние до дива
 
Ребят подскажите пожалуйста как про прокрутке окна узнать какое расстояние от верха окна до дива

Trues 18.03.2015 14:02

Ложная вспышка я уже придумал как сделать кидаю свой код под атаку наших критиков)))

грубо говоря была следущая задача:
"При прокрутке вниз оставлять блок в фиксированном положении после того как он перешагнет определенный порог"

$(document).ready(function(){
	
	$(window).scroll(function(){
		if ($(this).scrollTop()>50)
			{  
			$(".two-block").css({"marginTop":$(this).scrollTop()});      
			}
		else
			{
			$(".two-block").css({"position":"static"});
			}
	});
});

Viral 18.03.2015 14:03

раз уж jQuery, то вот полезная статья

Trues 18.03.2015 14:12

а чем не понравилась мой код))

Viral 18.03.2015 14:20

if ($(this).scrollTop()>50) - этим, если контент выше блока изменится, придется менять число в условии

Trues 18.03.2015 14:48

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

Viral 18.03.2015 14:49

Я отказываюсь понимать этот пост.. здоровье дороже.. извините..

Trues 18.03.2015 15:57

:) нечего страшного

ruslan_mart 18.03.2015 16:25

Trues, говнокодишь мне тут. :) У тебя при каждом скролле происходит парсинг документа (ищется элемент по селектору), потом применяются уже возможно существующие стили.

Я у себя вот так делал:
var menuIsFixed = false;
window.eventAdd('scroll', function() {
	var isScrollFollowHeader = (body.scrollTop || html.scrollTop) >= 250;
	if(menuIsFixed != isScrollFollowHeader) {
		main[menuIsFixed ? 'classRemove' : 'classAdd']('menu-fixed');
		menuIsFixed = !menuIsFixed;
	}
});

Trues 18.03.2015 16:39

:D я только сейчас понял о чем ты говоришь))) но я не могу сделать через offset().top спасибо за напутствия)


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