Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Добавление класса элементу при прокрутке к этому элементу (https://javascript.ru/forum/misc/45808-dobavlenie-klassa-ehlementu-pri-prokrutke-k-ehtomu-ehlementu.html)

patriot94 17.03.2014 06:25

Добавление класса элементу при прокрутке к этому элементу
 
Доброго времени суток!

Нужна помощь! Нужно добавлять класс элементу при прокрутке к нему. То есть есть элемент, например с классом title, нужно что бы когда юзер докручивал сайт до него, автоматом добавлялся бы еще один класс. Хочу реализовать таким способом вызов анимации!

Очень надеюсь на вашу помощь!

ruslan_mart 17.03.2014 08:52

function getOffsetTop(self) {
	var y = 0;
	if(self.offsetParent) while (true) {
		y += self.offsetTop;
		if(!self.offsetParent) break;
		self = self.offsetParent;
	}
	else if(self.y) y += self.y;
	return y;
}

var elem = document.querySelector('.title'),
	elemPosTop = getOffsetTop(elem);

window.onscroll = function() {
	if((this.scrollTop || document.documentElement.scrollTop) == elemPosTop) {
		elem.classList.add('new-class');
		this.onscroll = null;
	}
}


Как-то так.

patriot94 17.03.2014 21:17

Не работает( Есть еще варианты?

ruslan_mart 18.03.2014 10:04

http://learn.javascript.ru/play/QdqvZ

jsnb 18.03.2014 11:14

Функции для определения координат взял из учебника Ильи:
http://learn.javascript.ru/play/MPGTzb
Работает только для вертикально прокрутки, для горизонтальной делается аналогично.

рони 18.03.2014 12:41

:write:
макет видимости любой части обьекта с визуализацией в процентах на jquery
макет видимости любой части обьекта без jquery
формулы видимости


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