Главное Авторские колонки Вакансии Вопросы
22 820 29 В избр. Сохранено
Авторизуйтесь
Вход с паролем

Фиксированное меню при прокрутке страницы за 5 секунд

В последнее время в моду вошла такая тенденция как фиксированное меню при прокрутке страницы. Обычно это горизонтальное меню на Landing Page сайтах.
Мнение автора может не совпадать с мнением редакции

В последнее время в моду вошла такая тенденция как фиксированное меню при прокрутке страницы. Обычно это горизонтальное меню на Landing Page сайтах.

Как это работает – при загрузке страницы меню находится в определенном месте страницы (например, под «шапкой»), а при прокрутке страницы оно фиксируется вверху окна браузера и не прокручивается, как остальное содержимое.

Если же посетитель прокручивает страницу вверх и достигает начала страницы, меню возвращается на свое место. Таким образом, посетитель, находясь в любом месте страницы, может его использовать и переходить на другие страницы сайта. Это очень удобно и соответствует принципам юзабилити.

b_558e5331960e9.jpg

Сейчас я расскажу Вам как реализовать такое меню с помощью потратив минимум своего времени и не прибегая за помощью к профессионалам.

Для начала нам подключить jQuery-библиотеку для сайта

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>

можно подключить локально или через google.

Для локального подключения необходимо скачать файл jQuery с официального сайта http://jquery.com/

CSS

b_558e534cddfe5.jpg

JavaScript

b_558e53698c52a.jpg

В скрипте создаем 2 переменные в которые сохраняем значения высоты шапки и отступа блока с меню сверху. Отступ может отсутствовать (как в данном случае). Затем пишем обработчик на событие onScroll объекта <code>window. В нем с помощью метода <code>scrollTop() вычисляем расстояние от верха страницы до текущей позиции скроллера прокрутки. На основании расчета позиционируем блок с меню.

На этом все, благодаря простым решениям можно добиться красивого фиксированного меню которая не будет прослистываться при прокрутке основной части сайта

0
В избр. Сохранено
Авторизуйтесь
Вход с паролем
Комментарии
Starter
Экспертная помощь стартапам
Prolis Labkk
Для кого эта статья? Лучше бы привели полный код страницы, а то вряд ли читатель Спарка догадается подключить jQuery на главную станицу, замедлив ее открытие браузером.
Ответить
Персонал05
Аренда грузчиков и разнорабочих в Махачкале
Омаров Хабиб
Спасибо за подсказку
Ответить
Заработай или сдохни
Вся боль и слезы российского бизнеса от первого лица без рекламы и смс
Фримен Константин
Не все плагины Jquery замедляют страницу
Ответить
Starter
Экспертная помощь стартапам
Prolis Labkk
Во-первых, все-таки все плагины замедлят на время загрузки себя, если не сжимать плагин и библиотеку в один файл.
Во-вторых, я имел в виду время загрузки самой библиотеки на главной странице. Сам стараюсь страницы, влияющие на отношение к сайту, делать реактивными, поэтому не стану загружать стороннюю библиотеку только ради доступа к элементу по селектору.
Ответить
Персонал05
Аренда грузчиков и разнорабочих в Махачкале
Омаров Хабиб
бывает jQuery не только для этого нужно чтоб сделать фиксированное меню
Ответить
Заработай или сдохни
Вся боль и слезы российского бизнеса от первого лица без рекламы и смс
Фримен Константин
Jquery вообще отличная штука)
Ответить
Starter
Экспертная помощь стартапам
Prolis Labkk
Знаете ли вы, что для показа главной страницы вашего сайта http://super--star.ru/ браузер должен сделать порядка 90 запросов, загрузить 2.5Мб контента и начнет отображение страницы через 3,5 секунды?
Ответить
ZONA
Товары и услуги со всей России
Антон Филиппов
Это типичная ситуация разработчиков))) сам борюсь со своими, чтобы минификаторы были нормальный (css/js), gzip работал где надо, да и кэшировать нужно всю статику... Удалось разогнать до 700мс первичку, и до 250 вторичку... но это не придел, на днях постараемся еще больше разогнать) К стати, а это было бы интересно (может пост написать на эту тему) ?
Ответить
Starter
Экспертная помощь стартапам
Prolis Labkk
Напишите, это же полезный кейс, влияющий и на сео и на конверсию и на стоимость сопровождения. В принципе, после включения архивации на стороне сервера, заниматься минификацией кода уже не так эффекивно, как без нее.
Ответить
ZONA
Товары и услуги со всей России
Антон Филиппов
Тут очень спорные моменты...

По идее, минификацию лучше всегда делать, т.к. не все браузеры поддерживают gzip. Такой подход даже наш любимый яша использует. Во вторых, gzip сжатие на уровне сервера это правильно, но по идее он тоже создает в динамике (при каждом обращение) и создается доп нагрузка, пусть и не большая. Чтобы этого избежать, можно при минификации создавать gz вервию и не нагружать (имхо), а при изменение файлов, генерировать заново (на автомате).

Такой подход идеален только для больших проектов, на маленьких разницы не увидеть от серверной и скриптовой (а вообще, хороший разработчик и системный админ., могут сделать гораздо лучше). В данном вопросе не селен, но пока разбирался, понял что большинство крупных проектов используют данный подход.
Ответить
Заработай или сдохни
Вся боль и слезы российского бизнеса от первого лица без рекламы и смс
Фримен Константин
Знаете ли Вы, что мой сайт мгновенно грузится при наличии хорошего интернет соединения?
Ответить
ZONA
Товары и услуги со всей России
Антон Филиппов
Тут сразу поправочка, все зависит от вашей ЦА.

Когда у вас аудитория от 18+ и до бесконечности, по всей России и не только, и трафик хотя бы от 10к в сутки, хочется посмотреть как он будет грузиться (хотя бы в среднем).

А насчет быстро сомневаюсь, у меня канал 100 мб и сам я из мск., грузится первичка почти 4 сек, с подгрузкой картинок почти 8.39, а полная загрузка 35.48.

ps в регионах, если есть канал 10 мб то вообще повезло, а то порой встречаются 0.5 - 1 мб.
Ответить
Заработай или сдохни
Вся боль и слезы российского бизнеса от первого лица без рекламы и смс
Фримен Константин
к сожалению, гугл не разделяет Вашего мнения. Поверьте, это весьма хороший показатель
Ответить
Заработай или сдохни
Вся боль и слезы российского бизнеса от первого лица без рекламы и смс
Фримен Константин
К слову, у spark.ru - 56 из 100
Ответить
ZONA
Товары и услуги со всей России
Антон Филиппов
Я не буду вас переубеждать, а цифры (которые я привел выше) все говорят за себя. А что касается примеров, то по тому же гуглу, мы вытаскиваем 96/100 на днях закончат пару моментов, и запустим сайт на полную, думаю будет все 100
Ответить
Starter
Экспертная помощь стартапам
Prolis Labkk
А, ну теперь я спокоен, кэш у вас включен.
Ответить
Starter
Экспертная помощь стартапам
Prolis Labkk
Для 100 надо внешние стили загружать в теле документа, а не в заголовке, что противоречит директивам ВЦСПС и сдравому смыслу.
Ответить
ZONA
Товары и услуги со всей России
Антон Филиппов
Я в курсе) это был некий сарказм! А вообще есть обманка, можно загружать через CDN или поддомен и тогда эта часть отпадает). У нас и сейчас очень все не плохо, тут главное не сильно заморачиваться ибо идеал не всегда хорошо.
Ответить
Заработай или сдохни
Вся боль и слезы российского бизнеса от первого лица без рекламы и смс
Фримен Константин
Активно минусуют приверженцы dial-up соединения?))
Ответить
Евгений Леонов
А у меня срезают баллы за несжатые картинки и библиотеки, которые подтаскивает сам гугл.
Ответить
ZONA
Товары и услуги со всей России
Антон Филиппов
С картинками не подскажу ибо есть много способов их сжимать, а многие библиотеки уже есть на cnd и в кэшах...

Как пример https://tech.yandex.ru/jslibs/ тоже самое есть на самом jquery и google...
Ответить
Евгений Леонов
Подключен адсенс, и вот на него сам гугл и ругается - картинки не те, JS не тот.
Ответить
ZONA
Товары и услуги со всей России
Антон Филиппов
С данной проблемой не сталкивался (не углублялся), возможно решение будет, через асинхронную подргрузку или через фрейм..., но не советую) Лучше пусть балов не доберете, чем коряво будет работать и что самое страшное, могут придраться и забанить акк.
Ответить
Алексей Тарасов
Тащить jQuery ради такого? Это элементарно делается на ванильном js.
Ответить
Персонал05
Аренда грузчиков и разнорабочих в Махачкале
Омаров Хабиб
вы опять меня не поняли, любая готовая система управления сайтами уже стоит на jQuery. это просто один из МЕТОДОВ реализации
Ответить
Алексей Тарасов
Ну где же стоит? Вы сами в середине статьи пишите: "Для начала нам подключить jQuery-библиотеку для сайта".
Ответить
Персонал05
Аренда грузчиков и разнорабочих в Махачкале
Омаров Хабиб
друг мой, это я написал потому что выше в комментариях было сказано что не понятно для новичка. Напишите говорит что нужно jQuery подключить
Ответить
Алексей Тарасов
Демки
http://codepen.io/phantomesse/pen/AEvbl
http://codepen.io/codeams/pen/uljkp

В поиске по "sticky" на codepen.io найдёте ещё массу вариаций.
Ответить
Персонал05
Аренда грузчиков и разнорабочих в Махачкале
Омаров Хабиб
Спасибо, друг
Ответить
Выбрать файл
Блог проекта
Расскажите историю о создании или развитии проекта, поиске команды, проблемах и решениях
Написать
Личный блог
Продвигайте свои услуги или личный бренд через интересные кейсы и статьи
Написать

Spark использует cookie-файлы. С их помощью мы улучшаем работу нашего сайта и ваше взаимодействие с ним.