КАК сделать плавающую/прилипающую шапку (или меню)?

  Переглядів 18,931

Просто: разработка

Просто: разработка

4 роки тому

При вёрстке сайтов очень часто приходится делать шапку или блок с навигацией (меню), который при скролле остаётся в зоне видимости. Такое поведение называют по-разному: плавающая шапка, прилипающая шапка (и то же самое про другие элементы - плавающее/прилипающее меню). Иногда эта шапка изначально прибита к верхней границе экрана, а иногда бывает так, что нужный блок идёт вторым или третьим по счёту.
В этом видео я покажу несколько вариантов того, как это можно реализовать, а так же, покажу какие бывают подводные камни и как их обойти.
Мы рассмотрим реализацию с помощью position: sticky, а так же с помощью position: fixed. Ну и нам понадобиться немножко JavaScript. Я буду использовать jQuery, потому что на нём продемонстрировать буду проще и быстрее, но при желании это можно будет написать и на чистом JS, логика останется такой же.
=======================================
Записаться на консультацию:
prosto-razrabotka.ru/
Стать спонсором канала:
/ @prosto_razrabotka
=======================================
Telegram
Канал - t.me/prostorazrabotka
Чат - t.me/prostorazrabotkachat
=======================================
Подписывайтесь в соц. сетях:
Facebook - / vitaliy.kirenkov
VKontakte - vitaliy.kirenkov
LinkedIn - / kirenkov
Twitter - / vitaliykirenkov
Instagram - / vitaliy.kirenkov
=======================================
Мой второй канал:
/ @ladevega
=======================================
• КАК сделать плавающую/...
Привет, меня зовут Виталий Киренков, и я занимаюсь веб-разработкой с 2007 года. За это время я сверстал более 200 сайтов (как минимум, половина из них с JavaScript), разработал с коллегами 2 интернет-банка на React + Redux + Typescript. И на этом канале я делюсь своим опытом в части вёрстки, javascript, и делаю всякие полезные видео для новичков и не только.
Больше информации обо мне: kirenkov.me/

КОМЕНТАРІ: 103
@prosto_razrabotka
@prosto_razrabotka 3 роки тому
😎 Получить исходники и другие преимущества - boosty.to/prostorazrabotka ❓ Запись на консультацию - prosto-razrabotka.ru/ ✨ Telegram канал - t.me/prostorazrabotka/ 🔥 Telegram чат - t.me/prostorazrabotkachat/ Можете добавиться в друзья: 📷 Instagram - instagram.com/vitaliy.kirenkov/ 📘 ВКонтакте - vk.com/vitaliy.kirenkov/ 📗 Facebook - facebook.com/vitaliy.kirenkov/ 📙 LinkedIn - www.linkedin.com/in/kirenkov/ ✏️ Twitter - twitter.com/VitaliyKirenkov/ А так же, подписаться на страницы: 📘 ВКонтакте - vk.com/public195137161/ 📗 Facebook - facebook.com/prostorazrabotka/
@user-nn7so9gv7y
@user-nn7so9gv7y 4 роки тому
Хорошее видео. Когда начал верстать, возникало (да и сейчас возникает) много затыков, которые не знал как разрулить чистым CSS. А на JS эти проблемы решаются легко, просто, а главное - логично и понятно. Спасибо за видео! JavaScript - это мощь и сила!
@user-pn2ev2je2l
@user-pn2ev2je2l 3 роки тому
Благодарю Вас за видео.
@ThisFrontend
@ThisFrontend 4 роки тому
Очень полезное видео, спасибо за работу 👍 как всегда лайк!
@prosto_razrabotka
@prosto_razrabotka 4 роки тому
Спасибо -)
@tonichopper5808
@tonichopper5808 4 роки тому
Спасибо, очень полезно. Нужно больше js!))
@user-lb3xq1ob2c
@user-lb3xq1ob2c 4 роки тому
Можно не приклеивать шапку (навигацию), ломая верстку, танцуя на костылях, а просто показывать/скрывать копию навигации которая вечно приклеена к топу. Но это на вкус и цвет конечно.
@zvo1989
@zvo1989 4 роки тому
Отличная практика. Спасибо большое. Недавно задавался этим вопросом, как будто мысли мои прочитали))) Еще раз спасибо)
@prosto_razrabotka
@prosto_razrabotka 4 роки тому
Не, мысли пока читать не умею -)
@abrafgesvbeac3676
@abrafgesvbeac3676 3 роки тому
Большое спасибо! Очень круто объясняешь.
@prosto_razrabotka
@prosto_razrabotka 3 роки тому
Спасибо
@TheTexPro
@TheTexPro 4 роки тому
Просто, доступно, актуально - спасибо))
@prosto_razrabotka
@prosto_razrabotka 4 роки тому
Звучит как слоган -)
@TheTexPro
@TheTexPro 4 роки тому
@@prosto_razrabotka быстро ты ответил))
@alcacademy_it
@alcacademy_it 4 роки тому
Очень полезные видео, обязательно буду использовать этот способ в своих проектах, огромный респект)
@prosto_razrabotka
@prosto_razrabotka 4 роки тому
Благодарю -)
@gio2156
@gio2156 4 роки тому
Супер как раз то что надо для начальной практики jquery пойду делать)
@prosto_razrabotka
@prosto_razrabotka 4 роки тому
Успехов)
@ekaterina2073
@ekaterina2073 2 роки тому
гениально, спасибо!)) написала сама на JS, все отлично работает, хоть и пришлось пострадать, но куда без этого)))
@ekaterina2073
@ekaterina2073 2 роки тому
const nav = document.querySelector('.nav'); const navHeight = nav.clientHeight; const head = document.querySelector('.header'); const wr = document.querySelector('.wrapper'); window.addEventListener('scroll', () => { if (window.scrollY > head.scrollHeight) { wr.classList.add('navFixed'); head.style.marginBottom = navHeight + 'px'; } else if (window.scrollY < head.scrollHeight) { wr.classList.remove('navFixed'); head.style.marginBottom = '0px'; } });
@jurgena.2160
@jurgena.2160 3 роки тому
С оглядкой на крутое видео про вашу работу в IBM, случайно волей работы потребовалось поискать красивое решение, которое в вашем видео и раскрывается, в общем пасиб большое, за то, что вы образовываете и учите хорошей практике)
@user-lz2co7te4y
@user-lz2co7te4y 4 роки тому
Спасибо за полезное видео!😃
@prosto_razrabotka
@prosto_razrabotka 4 роки тому
И вам спасибо за просмотр -)
@user-bp5rh1wb2i
@user-bp5rh1wb2i 4 роки тому
Спасибо,не всё понял,но концепция ясна,крут и весел как всегда!)
@prosto_razrabotka
@prosto_razrabotka 4 роки тому
Так это... не стесняемся, спрашиваем чего непонятно -)
@user-bp5rh1wb2i
@user-bp5rh1wb2i 4 роки тому
@@prosto_razrabotkaпересмотрел ,понял,принял!) Жаль нельзя второй раз лайк поставить)
@shazplay8878
@shazplay8878 4 роки тому
Обожаю твои видео! ❤️❤️❤️
@prosto_razrabotka
@prosto_razrabotka 4 роки тому
Спасибо -)
@dmitriidmitriev4708
@dmitriidmitriev4708 4 роки тому
Добрый день! Подскажите пожалуйста не очень понимаю. В какой тег правильнее будет обернуть элементы меню ? То есть в html ecть теги и какой из них лучше использовать для меню в хедере и футере?
@prosto_razrabotka
@prosto_razrabotka 4 роки тому
Как вам видос?))
@dandcubes
@dandcubes 4 роки тому
четкий видосик)) Классный амбиентик на фоне, так вообще лампово смотреть-) Молодец😊
@prosto_razrabotka
@prosto_razrabotka 4 роки тому
Спасибо -)
@lackevil3730
@lackevil3730 4 роки тому
Круто!
@Polihut1
@Polihut1 4 роки тому
Как всегда очень к месту! Каждый видос залетает только так😉
@amirych
@amirych 4 роки тому
Нормально. Только без jquery надо.
@konstantinv5512
@konstantinv5512 3 роки тому
Спасибо.
@user-hc5ul3ds5u
@user-hc5ul3ds5u 4 роки тому
Лучший)
@prosto_razrabotka
@prosto_razrabotka 4 роки тому
Спасибо -)
@evgnows8275
@evgnows8275 3 роки тому
спасибо! а как сделать смену двух css файлов чтобы показать клиенту разные цветовые схемы?
@ilya_ptrv
@ilya_ptrv 3 роки тому
Классный видос про шапку, было бы круто увидеть про "умную" шапку, которая сворачивается при сколле вниз, а при скролле вверх - показывалась. Пример - сайт Чулакова chulakov.ru Когда идет изменение движения, шапка замирает, нет резкого появления.
@user-zq3zp1gq4k
@user-zq3zp1gq4k 4 роки тому
мне такое как раз очень надо спасибо )
@prosto_razrabotka
@prosto_razrabotka 4 роки тому
Не за что -)
@thecatwrites9731
@thecatwrites9731 2 роки тому
Виталий, добрый день! вы можете сказать марку вашего комп кресла? или что-то похожее что вам понравилось? я хочу выбрать себе хорошее кресло, но китай массовый не хочется взять, спасибо
@prosto_razrabotka
@prosto_razrabotka 2 роки тому
Это сложный вопрос и стоит подбирать под рост и вес. У меня Samurai
@sandu_yoga
@sandu_yoga 2 роки тому
спасибо!
@ChungaChanga03
@ChungaChanga03 4 роки тому
Зачёт бро.
@prosto_razrabotka
@prosto_razrabotka 4 роки тому
Спасибо
@user-yi8pz7cf7c
@user-yi8pz7cf7c Рік тому
спасибо
@lackevil3730
@lackevil3730 4 роки тому
Ставлю колокольчик!
@prosto_razrabotka
@prosto_razrabotka 4 роки тому
Красава! -)
@user-zi2iu5ep4l
@user-zi2iu5ep4l 2 роки тому
а как сделать липкий header ,если есть фоновая картинка в хедере. т,к если я ставлю какой-то цвет на header__top,то он закрашивает вверх самого фонового изображения
@island1345
@island1345 3 роки тому
Cool
@squarl5922
@squarl5922 4 роки тому
Круто! Когда нибудь будешь разбирать скрипт, при котором что-то меняется при скролле? Допустим со скроллом проходит анимация
@prosto_razrabotka
@prosto_razrabotka 4 роки тому
Подумываю, но это непростая тема. Как правило подобные штуки делаются на библиотеке ScrollMagic
@_barracuda_5202
@_barracuda_5202 4 роки тому
есть кокой-то канал, который в подобном стиле преподаёт java?
@user-ss1vo7ul4h
@user-ss1vo7ul4h 4 роки тому
Можно разобрать скрол а-ля вертикальный слайдер? При скроле меняются блоки сайта.
@prosto_razrabotka
@prosto_razrabotka 4 роки тому
alvarotrigo.com/fullPage/ru/#page1 Это?
@user-ss1vo7ul4h
@user-ss1vo7ul4h 4 роки тому
@@prosto_razrabotka да, он самый)
@profesor08
@profesor08 3 роки тому
Можно просто смело зафиксировать хедер и задать отступ для контента на высоту хедера. Если надо как-то аниммировать, то можно при прокрутке проверять ее величину и делать какие-то действия. Если пытаться выдирать хедер из потока, то полезет всякая фигня продемонстрированная в видео. Если надо чтоб хедер исчезал но появлялся по определенных движениях, то делать его надо абсолютом, потом фиксировать и красиво выдвигать.
@andriyromankiv7287
@andriyromankiv7287 4 роки тому
Привет, если верхняя шапка с лого, поиском и навигационная горизонтальное меню (кнопки) тоже такой же принцип? надо логотип и поиск отдельно зафиксировать и отдельно навигационное меню прилипнуть к шапке?
@prosto_razrabotka
@prosto_razrabotka 4 роки тому
Я тут показал сам принцип работы. Содержимое же уникально для каждого сайта. Например шапка может сразу включать в себя навигацию... Суть в том, что вы получаете класс (информацию о том, что Точка прилипания достигнута), а дальше уже отталкиваясь от класса стилизуете то, что прилипло.
@andriyromankiv7287
@andriyromankiv7287 4 роки тому
@@prosto_razrabotka я понял, уже попробовал, все норм. спасибо за подсказку
@prosto_razrabotka
@prosto_razrabotka 4 роки тому
Отлично
@user-qo5sq4me6k
@user-qo5sq4me6k 3 роки тому
Привет,спасибо за видео.А как сделать прилипающий к низу подвал(чтоб независимо от размера документа он был всегда в самом низу)?Спасибо большое заранее автору за ответ, он мне очень нужен.
@prosto_razrabotka
@prosto_razrabotka 3 роки тому
ukposts.info/have/v-deo/nntoZJ5neo5_1Ik.html Тут, как раз делается такой подвал
@romzik1000
@romzik1000 Рік тому
Для создайте class="main" и в CSS для .main { flex-grow: 1;} Всё, футер прибит.
@Alexandr_Zavgorodniy
@Alexandr_Zavgorodniy 4 роки тому
Зачем загрязнять код и делать лишний контейнер в nav, если при фиксировании можно было просто задать центрирование для самого nav? Да и в случае с шапкой проще фиксировать и центрировать сам header чем плодить ненужный код
@trener_win
@trener_win Рік тому
чет у меня не заработало, undefind для первого значения, пришлось делать через пиксели
@user-vg1sr9ye5s
@user-vg1sr9ye5s 3 роки тому
Ошибка: оffset is not a function. Что с ней делать?
@prosto_razrabotka
@prosto_razrabotka 3 роки тому
Исправить
@reygasai
@reygasai 4 роки тому
Годнота, больше ничего не скажешь ;)
@prosto_razrabotka
@prosto_razrabotka 4 роки тому
А больше и не надо -)
@maxlevashov3855
@maxlevashov3855 4 роки тому
интересно посмотреть реализацию плавающего сайдбара, не наезжающего на контентную часть при горизонтальном скроле
@prosto_razrabotka
@prosto_razrabotka 4 роки тому
Горизонтальном?! Точно? Может всё же вертикальном?
@maxlevashov3855
@maxlevashov3855 4 роки тому
@@prosto_razrabotka ну при вертикальном само собой должен ездить, но если свернуть окно браузера, появляется горизонтальный скрол и если скролить по горизонтали начинается самое интересное). Да, если еще сайдбар слева
@kirillriman3611
@kirillriman3611 4 роки тому
не знал про sticky, всегда писал через js даже ютуб скоро уже не будет поддерживать IE, кому он нужен?
@shazplay8878
@shazplay8878 4 роки тому
Сайтам типа одноклассников нужен
@meganion4344
@meganion4344 3 роки тому
Для саморазвития ето конечно плюс но не проще position: fixed;
@user-ri1ry7sx6p
@user-ri1ry7sx6p 4 роки тому
Первый лайк 😎😎😎😎
@prosto_razrabotka
@prosto_razrabotka 4 роки тому
Благодарю -)
@aikkku
@aikkku 4 роки тому
Первый😎😎😎
@prosto_razrabotka
@prosto_razrabotka 4 роки тому
Еее!!))
@aikkku
@aikkku 4 роки тому
@@prosto_razrabotka люблю твой контент
@avel8965
@avel8965 2 роки тому
Я сегодня видел очень короткий вариант на чистом css
@avel8965
@avel8965 2 роки тому
А, тут сказали о нем
@user-fu2cv9xl7p
@user-fu2cv9xl7p 4 роки тому
@prosto_razrabotka
@prosto_razrabotka 4 роки тому
Точно?)
@ChreesWoods
@ChreesWoods 4 роки тому
Смеюсь с превью как ненормальный, теперь всегда когда буду говорить о шапке перед глазами будет эта картинка
@prosto_razrabotka
@prosto_razrabotka 4 роки тому
Хаха -))
@boldureans
@boldureans 4 роки тому
Видео обман! В описании шапка, а на видео - шляпа!
@prosto_razrabotka
@prosto_razrabotka 4 роки тому
Кажись наоборот, не?)
@LLuKKen
@LLuKKen 3 роки тому
Я ни чего не понял....Да и фиг с ним...Я вообще мало что понимаю)
@eugenenovikov671
@eugenenovikov671 3 роки тому
ой а кто это на xhtml пишет в 2020?
@privet_baget
@privet_baget 4 роки тому
Хейтерам jQuery посвящается. Использовал и буду использовать jQuery толоко ради того чтобы позлить этих людей, хы))
@user-lb3xq1ob2c
@user-lb3xq1ob2c 4 роки тому
Зачем 🤦‍♂️
@user-bq6jv3cd4g
@user-bq6jv3cd4g 2 роки тому
через жопу к звёздам
Как сделать табы на: чистом CSS / чистом JS / грязном jQuery?
26:33
Просто: разработка
Переглядів 25 тис.
Как сделать слайдер на JS?
27:37
Просто: разработка
Переглядів 89 тис.
Normal vs Smokers !! 😱😱😱
00:12
Tibo InShape
Переглядів 18 млн
Stray Kids "Lose My Breath (Feat. Charlie Puth)" M/V
02:53
JYP Entertainment
Переглядів 18 млн
Полноэкранный (fullscreen) блок  на CSS и HTML // Как это сделать?
16:06
ВСЁ, что нужно знать о CSS Селекторах. Типы селекторы css
42:23
Просто: разработка
Переглядів 55 тис.
How To Make Toggle Button Using HTML & CSS
5:27
MakeTechStuff
Переглядів 59 тис.
JS-решения №15. Фиксированная шапка при скролле вниз и вверх
12:20
MaxGraph - cайты как страсть
Переглядів 8 тис.
Выпадающее МЕНЮ на чистом CSS / HTML
13:43
Denis Gorelov
Переглядів 314 тис.
Учим HTML5 Canvas за 30 минут!
36:56
Хауди Хо™ - Просто о мире IT!
Переглядів 209 тис.
как зафиксировать меню в тильде zero block
11:40
Макс Куратов
Переглядів 44 тис.
Normal vs Smokers !! 😱😱😱
00:12
Tibo InShape
Переглядів 18 млн