Простое бургер-меню на чистом JS за 25 минут

Поділитися
Вставка
  • Опубліковано 1 січ 2025

КОМЕНТАРІ • 52

  • @codelab_channel
    @codelab_channel  2 роки тому +5

    Готовый код из урока (с объяснением) ➝ codelab.pro/prostoe-burger-menyu-na-chistom-javascript/

  • @dmitriipanov4627
    @dmitriipanov4627 Рік тому +1

    Большая благодарность тебе за старания, уроки и знания. Для меня (начинающего фронтендера) эти знания очень ценны, придают уверенности и помогают в наборе знаний перед моей первой настоящей работой!

    • @dmitriipanov4627
      @dmitriipanov4627 Рік тому

      Я вручную переписывал код (да, мне так интереснее), но на деле у меня вверху страницы только широкая фиолетовая полоса, без каких либо меню... Почему так может произойти?

    • @Plamyaognya
      @Plamyaognya Рік тому

      Я повторил у меня все получилось, я сайт делаю все по кускам собираю) только учусь

  • @tanto5976
    @tanto5976 2 роки тому +1

    Супер. То, что я искал. Сравнительно коротко, ясно и без лишней воды. Спасибо огромное! Только почему-то крестик получился неровный, но во-первых это придает какой-то интересный визуальный эффект. Будто крестик повернут немного. Хз, может мне кажется. Но, а во-вторых лечится так: .hamb__field.active .bar:nth-child(3) {
    transform: translateY(-10px) rotate(-45deg);
    }
    Вместо -8deg прописываем -10deg

  • @ИришкаВеселова-ъ1щ

    Самое лучшее видео по бургеру! Автору спасибо за видео.

  • @Plamyaognya
    @Plamyaognya Рік тому +1

    Было бы хорошо заснять продолжение ,как и что делать, типо как в меню категории и их содержимое! А это видео все четко работает и все понятно!

  • @АлексейЕгоров-у9н
    @АлексейЕгоров-у9н 2 роки тому +3

    Спасибо тебе большое, ты мне помог сделать мой первый бургер для коммерческого сайта))) Успехов тебе и миллион подписчиков!!

  • @Plamyaognya
    @Plamyaognya Рік тому +1

    Все четко и отлично, все работает как надо!

  • @afffiloss
    @afffiloss 2 роки тому +4

    Здравствуйте, при использовании копирования функции js копируется на полноэкранный вариант (встает список копией рядом), а на медиа при клике попап выезжает пустой. В чём может быть проблема?

  • @oleksiipivniev8433
    @oleksiipivniev8433 2 роки тому +3

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

    • @СергейКудаев-в6ц
      @СергейКудаев-в6ц 2 роки тому +1

      Куда уже больше объяснений, и так всё разжёвано именно для новичков. Точнее, для тех новичков, которые уже более-менее освоили синтаксис HTML и CSS. Тут даже JS понимать не надо, просто скопипастить его себе в js-файл, и не морочить голову - как это работает. А если новичок не понимает css и html, то сначала надо его поучить на более простых примерах. Это как изучение иностранного языка - пока не изучишь минимум слов на нём, на этом языке не заговоришь. Ссылки на учебу автор дал в рекомендации под видео.

    • @oleksiipivniev8433
      @oleksiipivniev8433 2 роки тому

      @@СергейКудаев-в6ц
      Я вижу ви умеете воспринимать критику 😆

  • @codelab_channel
    @codelab_channel  2 роки тому +8

    Друзья, я совсем забыл .. Чтобы меню закрывалось при нажатии на ссылку добавьте код в JS-файл:
    const links = Array.from(menu.children);
    links.forEach((link) => {
    link.addEventListener("click", closeOnClick);
    });
    function closeOnClick() {
    popup.classList.remove("open");
    hamb.classList.remove("active");
    body.classList.remove("noscroll");
    }

    • @overwox
      @overwox 2 роки тому +1

      Уже хотел написать про закрытие при клике на ссылку... 🙂

    • @АлексейЕгоров-у9н
      @АлексейЕгоров-у9н 2 роки тому +1

      Красава))

  • @ЦАРь-д9р
    @ЦАРь-д9р Рік тому +2

    Не забывайте, что в хтмл нужно прописать

  • @ivanvabyshchevich6713
    @ivanvabyshchevich6713 2 роки тому +2

    Большое спасибо за видео, как всегда все четко и понятно!

  • @КириллДжуманов
    @КириллДжуманов Рік тому +1

    Uncaught TypeError: Cannot read properties of null (reading 'cloneNode') мой первый бургер не хочет работать...

  • @marianechaeva8138
    @marianechaeva8138 Рік тому +1

    Большое спасибо!

  • @QOMITET
    @QOMITET 3 роки тому +6

    hover для бургера не пишут,hover это наведение мышью,бургер пишут для телефона/планшета,там пользователь мышью не будет наводить,для бургера задают touch и куча прочих свойств,но не hover

    • @codelab_channel
      @codelab_channel  3 роки тому +1

      Спасибо за поправку, учту это в исходнике на гитхабе.

  • @СергейКудаев-в6ц
    @СергейКудаев-в6ц 2 роки тому +1

    Отлично изложено - просто и чётко. Лайк, однозначно.
    Только один недочет: не прописаны якоря, по которым можно спуститься/перейти из пункта меню к его разделу на странице в index.html. Соответственно, нет и js кода для плавного осуществления этих переходов. Надо бы поправить, а, автор?

  • @baker510
    @baker510 Рік тому +1

    А где достать reset css как у тебя?

    • @codelab_channel
      @codelab_channel  Рік тому

      github.com/toni-wheel/youtube-adaptive-header/blob/master/reset.css

    • @baker510
      @baker510 Рік тому

      @@codelab_channel Спасибо большое!

  • @Plamyaognya
    @Plamyaognya Рік тому

    Подскажите кто знает, сделал я копию этого меню, под каталог и разместил их как в строку , если один блок закомментирую то второй работает , а если два стоит то меню работает каталог нет(

  • @eoghan_noble
    @eoghan_noble 2 роки тому +3

    Очень сильно помог с домашкой :)

  • @XmanX777
    @XmanX777 11 місяців тому

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

  • @nickdegolden7796
    @nickdegolden7796 2 роки тому

    Добрый день! :)
    Прописал в стилях:
    body.noscroll { overflow: hidden; }
    Прописал в скрипте:
    const body = document.body;
    body.classList.toggle("noscroll");
    В итоге получил: невозможность скролла в мобильной версии. А когда запускаю бургер и вывожу меню, тогда скроллится. Как-то всё наоборот получилось у меня :)

  • @NIkFreedomForce
    @NIkFreedomForce 2 роки тому +2

    красава! Успехов!

  • @mikhailbykov6311
    @mikhailbykov6311 2 роки тому +1

    отличный ролик! большое спасибо!

  • @menaker5097
    @menaker5097 2 роки тому +1

    Красава, всё понятно!

  • @swaytornado8327
    @swaytornado8327 2 роки тому +1

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

    • @codelab_channel
      @codelab_channel  2 роки тому

      Привет, спасибо за отзыв! Не совсем понял, что нужно сделать. Тебе нужно стилизовать активную ссылку? Если да, то в CSS можно обратиться к ней так:
      .link:active , где .link - класс ссылки в меню.

    • @swaytornado8327
      @swaytornado8327 2 роки тому

      Нет, смотри. У нас есть активная ссылка. Мы нажимаем на бургер, открывается меню, и когда мы нажимаем на ссылку, то бургер закрывается и мы переходим на нее. А как сделать, чтобы перед закрытием ещё и поменялась активная ссылка на ту, которую мы только что нажали. Чтобы при повторном открытии кнопки меню, у нас уже поменялась активная ссылка. Был к примеру, блок О нас, а теперь Контакты

    • @codelab_channel
      @codelab_channel  2 роки тому

      @@swaytornado8327 кажется понял, смотри. В моем коде функция closeOnClick обрабатывает событие при нажатии на ссылку. Тебе нужно передать в функцию event. То есть написать так closeOnClick(e). После этого внутри функции работаешь с e.target - это по сути и должна быть выбранная ссылка (в консоль выведи на всякий случай).
      Если это и есть выбранная ссылка, то при нажатии на неё присваиваете ваш активный класс. Пусть это будет btn_active. Будет примерно так :
      e.target.classList.add("btn_active").

    • @swaytornado8327
      @swaytornado8327 2 роки тому +1

      Огромное тебе спасибо. Сделаю, отпишусь. Всех благ тебе, и неимоверное количество подписчиков. Иду пробовать. Спасибо.

  • @sleeprelaxmusic9796
    @sleeprelaxmusic9796 3 роки тому +2

    все понятно, не хватило только реализации перехода по ссылкам, что бы меню скрывалось , а так спасибо)

    • @codelab_channel
      @codelab_channel  2 роки тому

      Это вы точно подметили, сделаю правки на Github'e. Спасибо!

  • @daniilmylo6805
    @daniilmylo6805 2 роки тому

    У меня впорос
    У меня скопированый код, но почему-то в попапе ничего не отображаеться((( Подскажите что можно сделать
    Заранее спасибо

  • @antoniotarasenko5135
    @antoniotarasenko5135 2 роки тому +1

    спасибо большое! все класс! тоько крестик жалко( кривой получился)))

    • @antoniotarasenko5135
      @antoniotarasenko5135 2 роки тому +1

      исправил) поменял на 10px и крестик стал норм .hamb__field.active .bar:nth-child(1) {
      transform: translateY(10px) rotate(45deg);

  • @hackzet5134
    @hackzet5134 2 роки тому

    От души мне понравилось

  • @АлексейШурый
    @АлексейШурый 2 роки тому

    А можете подсказать как мне поместить кнопку если у меня она есть (к примеру кнопка скачать) в само меню или вместо кнопки логотип?) (если у меня меню на всю высоту экрана)

    • @СергейКудаев-в6ц
      @СергейКудаев-в6ц 2 роки тому

      1.Создаете ссылку , в нее кладете саму кнопку (ваш button, который опишете далее в классе "класс-для-кнопки"),
      2. Ссылку размещаете в меню вместо логотипа в файле index.html.
      3. Cоздаете класс со стилями для кнопки ( "класс-для-кнопки"), прописываете его в ссылке.
      4. Если нужно, чтобы этот элемент появлялся только в мобильном разрешении, то прописываете его брейкпойнте.
      Примерно так:
      Сама ссылка: < a href = "ссылка" class = "класс-для-кнопки">текст ссылки и/или картинка ссылки
      В брейпойнте:
      @media (max-width: 1000px){
      .класс-для-кнопки{
      ... стили для кнопки (длина, ширина, цвет и т.д.)...
      }
      }
      Вместо 1000px можно выбрать иной предел (например: 767px ), выше которого кнопка должна исчезнуть.
      Не забудьте описать стиль для этой кнопки в ситуациях ::hover, ::focus, ::active - если это вам нужно.
      Профит.

  • @Neon-tw6rz
    @Neon-tw6rz 3 роки тому +2

    Красавчик

  • @v6252-u2w
    @v6252-u2w 2 роки тому

    у меня не получилось :(

  • @SOVA_Tokyo
    @SOVA_Tokyo Рік тому

    Видос помог, но объяснения просто ужасное, все очень быстро, а по js вообще ужас ничего не понятно, просто пишем, это делает то это то, просто ультра быстро, и ничего не понятно, а с айдишником для попапа заметил сразу, перед тем как начали писать код

  • @ДенисСтавнійчук-ъ8ь

    дай свой дс

  • @samurai-csgo
    @samurai-csgo 2 роки тому

    Подскажите в чем может быть проблема? Если в попап добавить еще элементы, скролл не работает. То есть меню скролится, а все что идет ниже нет