Как сделать фиксированное меню в шаблоне модерн

InstantCMS 2.X
#1 15 апреля 2024 в 22:07

Вот пример как нужно сделать: https://skrinshoter.ru/vPG9m2a1ES4?a

Варианты которые обсуждались ранее на форуме не работают.

Нужно чтобы при прокрутке фиксировалось это меню: Изображение

Подскажите знатоки pls 

#2 15 апреля 2024 в 23:22

 Abobo

Разделите хедер на три ряда. 

Среднему ряду, в котором будет ваше меню, добавьте класс sticky-top.

#3 15 апреля 2024 в 23:49

 Ris, это не будет работать.

 Abobo, вот порядок действий:
1)

Изображение

2) Добавьте новый класс sticky-menu

Изображение

3) В ваш css файл (можно при помощи обычного html-виджета) вставьте следующий код:

  1. .sticky-menu.fixed {
  2. position: fixed;
  3. top: 0;
  4. left: 0;
  5. width: 100%;
  6. z-index: 1000;
  7. }

Далее добавьте Javascript в этом же виджете в поле «JavaScript код»

Изображение

Код для вставки:

  1. $(document).ready(function() {
  2. var menu = $('.sticky-menu');
  3. var menuHeight = menu.outerHeight();
  4. var menuOffsetTop = menu.offset().top;
  5.  
  6. $(window).scroll(function() {
  7. var scrollTop = $(window).scrollTop();
  8.  
  9. if (scrollTop >= menuOffsetTop) {
  10. menu.addClass('fixed');
  11. $('body').css('padding-top', menuHeight);
  12. } else {
  13. menu.removeClass('fixed');
  14. $('body').css('padding-top', 0);
  15. }
  16. });
  17. });

Результат — https://checkpassword.7oz.ru/

Аналогично можно сделать для любой секции. Не тестила решение на малых экранах, но должно работать

#4 16 апреля 2024 в 11:55

 Ris, это не будет работать.

 Abobo, вот порядок действий:
1)

Изображение

2) Добавьте новый класс sticky-menu

Изображение

3) В ваш css файл (можно при помощи обычного html-виджета) вставьте следующий код:

  1. .sticky-menu.fixed {
  2. position: fixed;
  3. top: 0;
  4. left: 0;
  5. width: 100%;
  6. z-index: 1000;
  7. }

Далее добавьте Javascript в этом же виджете в поле «JavaScript код»

Изображение

Код для вставки:

  1. $(document).ready(function() {
  2. var menu = $('.sticky-menu');
  3. var menuHeight = menu.outerHeight();
  4. var menuOffsetTop = menu.offset().top;
  5.  
  6. $(window).scroll(function() {
  7. var scrollTop = $(window).scrollTop();
  8.  
  9. if (scrollTop >= menuOffsetTop) {
  10. menu.addClass('fixed');
  11. $('body').css('padding-top', menuHeight);
  12. } else {
  13. menu.removeClass('fixed');
  14. $('body').css('padding-top', 0);
  15. }
  16. });
  17. });

Результат — https://checkpassword.7oz.ru/

Аналогично можно сделать для любой секции. Не тестила решение на малых экранах, но должно работать

Foxman23

Спасибо огромное, работает как швейцарские часы 👍

Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.