Показать сообщение отдельно
  #2 (permalink)  
Старый 16.02.2013, 21:37
Интересующийся
Отправить личное сообщение для VHS1980 Посмотреть профиль Найти все сообщения от VHS1980
 
Регистрация: 21.04.2010
Сообщений: 13

function getCoords(elem) {
    var box = elem.getBoundingClientRect();

    var body = document.body;
    var docElem = document.documentElement;

    var scrollTop = window.pageYOffset || docElem.scrollTop || body.scrollTop;
    var scrollLeft = window.pageXOffset || docElem.scrollLeft || body.scrollLeft;

    var clientTop = docElem.clientTop || body.clientTop || 0;
    var clientLeft = docElem.clientLeft || body.clientLeft || 0;

    var top  = box.top +  scrollTop - clientTop;
    var left = box.left + scrollLeft - clientLeft;

    return { top: Math.round(top), left: Math.round(left) };
}

function isVisible(elem) {

	var coords = getCoords(elem);
	var windowTop = window.pageYOffset || document.documentElement.scrollTop;
	var windowBottom = windowTop + document.documentElement.clientHeight;

	coords.bottom = coords.top + elem.offsetHeight;

	// верхняя граница elem в пределах видимости ИЛИ нижняя граница видима
	var topVisible = coords.top > windowTop && coords.top < windowBottom;
	var bottomVisible = coords.bottom < windowBottom && coords.bottom > windowTop;

	return topVisible || bottomVisible;
}

function showVisible() {
	var likeboxElem = document.getElementById('like_box');
		if (isVisible(likeboxElem)) {
			likeboxElem.className = "like_box_fixed";
		}
}

window.onscroll = showVisible


Соответственно в функции showVisible пилите то, что хотите.

Последний раз редактировалось VHS1980, 16.02.2013 в 21:39.
Ответить с цитированием