Перейти к содержанию

Как совместить position fixed и relative?


Рекомендуемые сообщения

У себя на форуме хотел закрепить менюшку главную, но как только пишу position: fixed; она сжимается и меняет местоположение. Только на ipb такая проблема. Помогите кто знает.

Ссылка на комментарий
Поделиться на другие сайты

ну вообще так и должно быть..

положение указывай (top,left,right,bottom) и ширину (width: 100%; )

Ссылка на комментарий
Поделиться на другие сайты

А может кто-то помочь с плавающим меню? Точнее реализовать это

Ссылка на комментарий
Поделиться на другие сайты

Fedya, ну зафиксированное меню

Ссылка на комментарий
Поделиться на другие сайты

Родительскому блоку назначать нужно relative, дочернему -- fixed с указанием парметров расположения: "top:0;" к примеру. В таком случае при прокрутке меню должно быть полностью сверху, но и будет двигаться вместе с окном.

Подсмотри код у jc-mp.com, там неплохо сделано.

Ссылка на комментарий
Поделиться на другие сайты

Viserion, ссылка на мой сайт у меня в профиле, вы посмотрите какое там расположение меню

Ссылка на комментарий
Поделиться на другие сайты

Ссылка на комментарий
Поделиться на другие сайты

, и что это мне даёт? Только понятие об этих свойствах.

Ссылка на комментарий
Поделиться на другие сайты

Viserion, да, но ещё чтобы меню наверх перемещалось, а не так стояло

Ссылка на комментарий
Поделиться на другие сайты

Не совсем понял. Чтобы липло к верху, когда переходит на fixed? Так реализовано в UI.X для XenForo.

Ссылка на комментарий
Поделиться на другие сайты

Чтобы липло к верху, когда переходит на fixed?

да

Ссылка на комментарий
Поделиться на другие сайты

Вот код из JQ от UI.X:

	if ( $('html').hasClass('hasHeaderFixed') ) {
		var navigationTop = $('#navigation').offset().top;
		
		$(window).scroll(function(){ 

			var windowTop = $(window).scrollTop();

			if (navigationTop < windowTop) {
				$('#header').addClass('headerSticky');
				if ($('#moderatorBar').length) {
					$('#moderatorBar').addClass('moderatorBarSticky');
				}
				if ($('#loginBar').length) {
					$('#loginBar').addClass('loginBarSticky');
				}
			}
			else {
				$('#header').removeClass('headerSticky');
				if ($('#moderatorBar').length) {
					$('#moderatorBar').removeClass('moderatorBarSticky');
				}
				if ($('#loginBar').length) {
					$('#loginBar').removeClass('loginBarSticky');
				}
			}
		});
	}

Лишнее уберите, код для HTML доступен в скриншоте. Ширина обязательна, а вот top как раз от 0 до 10 px. Попробуйте сделать и скажите, получилось ли.

Ссылка на комментарий
Поделиться на другие сайты

Viserion, я вас не понял :shake:

Ссылка на комментарий
Поделиться на другие сайты

Подключайте библиотеку jQuery, в тело вставьте вот этот код:

		var navigationTop = $('#pimary_nav').offset().top;
		
		$(window).scroll(function(){ 

			var windowTop = $(window).scrollTop();

			if (navigationTop < windowTop) {
				$('#primary_nav').addClass('headerSticky');
			}
			else {
				$('#primary_nav').removeClass('headerSticky');
			}
		});

Этот код проверяет, не ниже ли граница окна, чем объект primary_nav (собственно, Ваш навбар)

Далее, в общий стиль добавьте следующее правило:

.headerSticky {top: 35px;z-index: 20;position: fixed;width: 85%;}

Теперь отредактируйте .main-width, вписав туда position:relative;

Сохраните и попробуйте прокрутить страницу так, чтобы панельки не стало видно, она сама должна будет выскочить наверх.

Ссылка на комментарий
Поделиться на другие сайты

, и что это мне даёт? Только понятие об этих свойствах.

 

Это даёт знания, как сделать плавающее меню и с необходимой шириной.

Ссылка на комментарий
Поделиться на другие сайты

Подключайте библиотеку jQuery, в тело вставьте вот этот код:

		var navigationTop = $('#pimary_nav').offset().top;
		
		$(window).scroll(function(){ 

			var windowTop = $(window).scrollTop();

			if (navigationTop < windowTop) {
				$('#primary_nav').addClass('headerSticky');
			}
			else {
				$('#primary_nav').removeClass('headerSticky');
			}
		});

Этот код проверяет, не ниже ли граница окна, чем объект primary_nav (собственно, Ваш навбар)

Далее, в общий стиль добавьте следующее правило:

.headerSticky {top: 35px;z-index: 20;position: fixed;width: 85%;}

Теперь отредактируйте .main-width, вписав туда position:relative;

Сохраните и попробуйте прокрутить страницу так, чтобы панельки не стало видно, она сама должна будет выскочить наверх.

не получается

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...