Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/23: Рейтинг темы: голосов - 23, средняя оценка - 4.52
4 / 4 / 5
Регистрация: 01.03.2013
Сообщений: 180
1

Прокрутка страницы, фиксированная шапка

18.11.2013, 23:40. Показов 4426. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет.
Такая ситуация: имеется сайт, верхняя часть состоит из 2 элементов: шапка и горизонтальное меню.
Хочу сделать так, чтобы при прокрутке страницы вниз шапка исчезала за пределы экрана, а как только дойдет до меню - меню фиксировалось, и дальше после прокрутки оставалось прилеплено вверху.
Помогите осуществить это, можно ссылочку
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.11.2013, 23:40
Ответы с готовыми решениями:

Прокрутка страницы
Доброго времени суток. Как сделать приветствие такого рода? Когда какая то часть страницы...

Прокрутка в конец страницы
Как сделать прокрутку страницы в самый низ? Пробывал так: Call window.scrollTo(0 ,...

Защита от парсинга: прокрутка страницы
Делаю защиту от парсинга. Предложили такую идею: расположить на странице Js, который чекает...

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

6
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,625
19.11.2013, 06:08 2
HTML5
1
2
3
4
5
6
7
8
9
10
<body style="margin: 0"
      onscroll="var obj = document.getElementById ('mnu');
                if (document.body.scrollTop > 123)
                   with (obj.style) position = 'fixed', zIndex = 555, top = 0;
                else
                   with (obj.style) position = 'relative', zIndex = 1, top = 0">
<div style="height: 123px; background: aqua">Øàïêà</div>
<div style="height: 234px; width: 100%; background: lime" id="mnu">Ìåíþ</div>
<div style="height: 400%; background: silver">Êîíòåíò ñòðàíèöû</div>
</body>
в MSIE версий ниже 9-й работать не будет
0
Эксперт JSЭксперт HTML/CSS
2435 / 1114 / 312
Регистрация: 23.06.2011
Сообщений: 3,525
19.11.2013, 15:41 3
Цитата Сообщение от kalabuni Посмотреть сообщение
в MSIE версий ниже 9-й работать не будет
Ну почему же только в них, это не работает во всех не гуглоподобных браузерах, а в гуглоподобных работает не верно, как только проходит фиксация исчезает кусок контекста равный высоте меню и причина этому очевидна.
Тестить надо, а не гадать.

тут похожее, но может не совсем то
https://www.cyberforum.ru/html5/thread914880.html

Добавлено через 5 часов 15 минут
работает ие8, лиса, опера и гуглоподобных
координатная сетка есть тут
CSS
1
2
3
4
5
6
7
8
body {background:window; margin:12px 15px 0 63px;}
body {background:url(scale_2000x2100.gif);}
#cap {background:pink; padding:7px;}
#mnu {background:lime; padding:7px 0;}
#mnu>div {background:lavender; padding:7px;}
#core {background:silver; padding:9px;}
 
#mnu.stop {position:fixed; top:0;}
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<div id="cap">Шапка<br>она же голова<br>она же заголовок</div>
<div id="mnu"><div>Меню пожалуй должно остаться однострочным</div></div>
<div id="core">Контент страницы
<br>1<br>
<div id="mnb">0</div>
<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br><br><br><br><br><br><br><br><br><br>11
<br>
Такая ситуация: имеется сайт, верхняя часть состоит из 2 элементов: шапка и горизонтальное меню.
Хочу сделать так, чтобы при прокрутке страницы вниз шапка исчезала за пределы экрана, а как только дойдет до меню - меню фиксировалось, и дальше после прокрутки оставалось прилеплено вверху.
Помогите осуществить это, можно ссылочку
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>12
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
 
text
</div>
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
(function(){
var Q, d;
Q={};
d=document;
 
onload=function(){
Q.cont=d.getElementById("core").style;
Q.scr=d.getElementById("mnu");
Q.scT=Q.scr.offsetTop;
Q.scH=Q.scr.offsetHeight;
Q.scr.style.width=Q.scr.offsetWidth+'px';
 
 };
 
onscroll=function(){
var s=d.documentElement.scrollTop||d.body.scrollTop;
if(s>Q.scT){
Q.cont.marginTop=Q.scH+'px';
Q.scr.className="stop";}
else{
Q.cont.marginTop=0;
Q.scr.className="";};
 
d.getElementById("mnb").innerHTML=Q.scT+' '+Q.scH+' '+s;
 
 };
 
 
 })();
2
0 / 0 / 0
Регистрация: 11.04.2014
Сообщений: 3
13.04.2014, 14:01 4
А можно как нибудь сделать, что бы плавающее меню было скрыто если браузер прижат к верху. а при прокрутке появлялось
0
kalabuni
13.04.2014, 16:29
  #5

Не по теме:

Цитата Сообщение от TrAvNiCa Посмотреть сообщение
если браузер прижат к верху
что за странная поза?
и кто у вас браузеры прижимает? :)

0
4 / 4 / 5
Регистрация: 01.03.2013
Сообщений: 180
10.10.2015, 18:17  [ТС] 6
newJS, подскажи пожалуйста, что нужно добавить в код скрипта, чтоб при обновлении страницы, когда положение страницы вертикально смещено (вертикальный бегунок по центру), фиксированное меню появилось.
А то оно появляется, только когда начинаешь скролить (срабатывает событие onscroll)
0
Ренегат
Эксперт HTML/CSS
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
10.10.2015, 18:37 7
Sanches, тк вызовите onscroll самостоятельно
0
10.10.2015, 18:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.10.2015, 18:37
Помогаю со студенческими работами здесь

Прокрутка страницы до определенного элемента, но с ньюансом
Добрый день! На странице сайта имеется фиксированный баннер в верхней части, высота - 80 рх ...

Прокрутка страницы с зажатой кнопкой мыши
Нужен скрол именно БЛОКА, а НЕ всей страницы с зажатием левой кнопки мыши. Есть код для прокрутки...

Прокрутка к элементу при загрузке страницы
День добрый! Такой вопрос - при загрузке страницы нужно прокрутить ее к нужному элементу...

Прокрутка веб-страницы с задержкой. Landing Page
Здравствуйте, уважаемые форумчане! Я, мягко сказать, в программировании не шарю. Веб-дизайнер....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru