Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   вопрос по position fixed (https://javascript.ru/forum/events/4129-vopros-po-position-fixed.html)

demi 26.06.2009 10:55

вопрос по position fixed
 
подскажите как решить такой вопрос

у меня есть небольшая менюшка слева которая имеет position:fixed
все нормально,но мне надо чтоб при поднятии до верху или до низу
эта менюшка останавливалась.

в общем как при fixed заключить в определенные рамки

то есть может здесь не фиксед использовать?

Kolyaj 26.06.2009 10:57

Цитата:

Сообщение от demi
мне надо чтоб при поднятии до верху или до низу
эта менюшка останавливалась.

А она никуда и не ездит, если она fixed.

demi 26.06.2009 11:03

да она зафиксирована в определенном месте экрана.

а мне надо: справа у меня рабочее поле, очень длинное и
поэтому сделал вот такую меню которая при скролинге оставалась
бы на месте.

но при этом она заезжает за границы поля, вот

Kolyaj 26.06.2009 11:07

Демо давайте, рассказчик из вас хреновый.

demi 26.06.2009 11:37

Цитата:

Сообщение от Kolyaj (Сообщение 22946)
Демо давайте, рассказчик из вас хреновый.

http://support.irkom.ru/pole/
там видно как меню заезжает за границы поля

Kolyaj 26.06.2009 12:47

Вы блок зафиксировали, а его контейнер передвигается по горизонтали свободно. Разумеется он заезжать будет.

Octane 26.06.2009 14:16

Можно попробовать подсмотреть здесь

demi 26.06.2009 17:22

да это видимо то что надо. спасибо

demi 29.06.2009 06:40

все получилось сделал такую фукцию(точнее взял из примера и переделал немного) и вставил ее в onscroll :

function menupos() { 
		var header = document.getElementById('nm');
		if (!header) return;
		var currentOffset = document.documentElement.scrollTop || document.body.scrollTop;
		var startPos = parseInt(setMenuOffset.initialPos) || 270;
		var desiredOffset = startPos - currentOffset;
		if ( desiredOffset <= 50 && desiredOffset >= 0 ) { header.style.top = 270 +  desiredOffset + 'px' ;}
		if ( desiredOffset < 0 ) header.style.top = 270 +  Math.abs(desiredOffset)+ 50 + 'px' ;
		if ( desiredOffset > 50 ) header.style.top = 270 + 'px' ;
	}


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