Меню аккордеон на чистом JS за 10 мин.

Sdílet
Vložit
  • čas přidán 5. 09. 2021
  • Привет в етом видео за 10 мин мы с тобой научимся делать меню аккордеон.
    Для чего нужен этот навык.
    Все очень просто в начале видео я показываю на конкретном сайте где используется аккордеон для блока, "Ответы на вопросы" на коммерческом сайте услуг. По этому этот навык поможет тебе в будущем.
    Технологии который мы будем использовать - html/css/js.

Komentáře • 78

  • @Minenkova_design
    @Minenkova_design Před rokem +1

    Спасибо, полезное видео!

  • @ivanyaloviy3891
    @ivanyaloviy3891 Před rokem +2

    Афигеть бро, спасибо! долго я сидел в попытках понять как это работает конечно)

  • @aslan_web
    @aslan_web Před 6 měsíci +1

    Привет очень круто и понятно но хотелось что бы была кнопка + и когда нажимаем на аккардеон + сменился на - , можно и на стрелочках вверх, вниз, а так все супер - спасибо )

  • @deniskotov
    @deniskotov Před rokem +1

    Супер! Спасибо большое!

  • @peshkovvru
    @peshkovvru Před rokem +2

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

  • @romanchernyshov2632
    @romanchernyshov2632 Před rokem +1

    Спасибо дружище!

  • @romanenkoonline
    @romanenkoonline Před 2 lety +3

    Спасибо, открыл для себя scrollHeight у элементов. Посколько для плавного открытия и закрытия "display: block/none" не годится, то приходится заменять высотой. И не просто height, а именно max-height.

    • @Illya.Landar
      @Illya.Landar  Před 2 lety

      Обращайся

    • @lyublyutvoyumat1495
      @lyublyutvoyumat1495 Před 2 lety +1

      @@Illya.Landar друг не подскажешь как стилизовать аккордион?

    • @Illya.Landar
      @Illya.Landar  Před 2 lety

      @@lyublyutvoyumat1495 ну он минимально стилизован на видео, уточни вопрос.

  • @whysergiyko
    @whysergiyko Před 8 měsíci +1

    Очень познавательно ,спасибо большое

  • @twitch.tv.disablee00
    @twitch.tv.disablee00 Před 6 měsíci +1

    Спасибооо, у других людей скучно и долго, тут быстро и понятно, лайк подписка)

  • @DmitryYa89
    @DmitryYa89 Před rokem +1

    Спасибо, как раз искал чтоб только один открывался, у других авторов такого нет

    • @Illya.Landar
      @Illya.Landar  Před rokem

      Обращайся

    • @anatolyannenko1821
      @anatolyannenko1821 Před rokem +1

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

    • @Illya.Landar
      @Illya.Landar  Před rokem

      @@anatolyannenko1821 да

  • @akramyuldoshev4889
    @akramyuldoshev4889 Před 2 lety +2

    класный урок супер

  • @user-ff3lc1et3u
    @user-ff3lc1et3u Před 2 lety +2

    Хороший ролик, продолжайте еще

  • @VagonFactov
    @VagonFactov Před 10 měsíci +1

    Коротко, по суті, дякую 👍

  • @elenafreim3800
    @elenafreim3800 Před 2 lety +1

    Спасибо!!!! 😎

  • @lyublyutvoyumat1495
    @lyublyutvoyumat1495 Před 2 lety +1

    спасибо друг, помог!

  • @frostybunny6702
    @frostybunny6702 Před rokem +1

    Лучшее решение что я видела! Спасибо!

  • @user-dp8xc9tx8n
    @user-dp8xc9tx8n Před 2 lety +1

    спасибо четко вышло

  • @user-ei8ib3mq2q
    @user-ei8ib3mq2q Před rokem +3

    Огромное спасибо!всё получилось за 10 минут!вот как сделать чтоб без нажатия не закрывался??ну чтоб могло быть 2-3 открытых сразу???

    • @Illya.Landar
      @Illya.Landar  Před rokem

      7:41 - 46 строчка закрывает все аккордеоны а потомна 47 строки открывает на который ты кликнул. Убери 46 строчку и должно заработать.

    • @user-ei8ib3mq2q
      @user-ei8ib3mq2q Před rokem

      @@Illya.Landar попробую!спасибо

  • @deniskotov
    @deniskotov Před rokem +1

    Илья, а скажи, пожалуйста, как ты считаешь, какая анимация аккордеона лучше - та, что ты в видео показываешь либо циклом уменьшать свойство height? Мне твой вариант нравится больше, но на работе разразилась дискуссия. Мне сказали, что лучше циклом уменьшать height. Но я против, потому что тогда анимацию приходится делать самостоятельно на js, а в твоем варианте транзишн нативный из CSS. Получается твой вариант более эффективный, на мой взгляд. Какие плюсы и минусы обоих вариантов, не знаешь? Возможно, циклом уменьшать свойство height (а не max-height) - более надежный вариант, не? Есть какие-то аргументы?

    • @Illya.Landar
      @Illya.Landar  Před rokem +4

      Аргументы следующие.
      1) Анимацию можно контролировать легко с помощью css
      2) Css меньше нагружает сайт чем js
      3) Css легче поддерживать в дальнейшем в отличии от javascript
      Но ты должен понять еще следующее. Если на работе сказали тебе стоит выполнять. Ибо тебя наняли что бы ты выполнял их требования а не спорил. Так что предложить можешь, а вот спорить нет. Соглашаться им с твоими аргументами или нет это их дело. Это же у них потом сайт из - за таких навалившихся мелочей будет дольше грузиться. А если уже хочешь диктовать свои правила то тебе надо будет свой бизнес создавать. Но бизнес это не про веб разработку а про многое другое.

    • @deniskotov
      @deniskotov Před rokem +1

      @@Illya.Landar понял, спасибо. Аргументы взял себе на вооружение)

    • @Illya.Landar
      @Illya.Landar  Před rokem

      @@deniskotov Обращайся

  • @alexscherbakiewicz8676
    @alexscherbakiewicz8676 Před 11 měsíci +1

    Спасибо,интересное решение,вроде все понятно но у меня не работает!)) В консоле ошибки нет!
    Если возможно пожалуйста прикрепляй исходный код под видео,еще шрифт можно крупнее сделать,приходиться сильно вглядыватся!

    • @Illya.Landar
      @Illya.Landar  Před 11 měsíci

      Пересмотри ролик и перепиши. У ребят других в комментах все работает. Где - то ошибка из - за не внимательности скорее всего

    • @Killguf
      @Killguf Před 8 měsíci +1

      @@Illya.Landar так и есть. делал как у тебя, но со своими дополнениями. и как итог - все работает

    • @Illya.Landar
      @Illya.Landar  Před 8 měsíci +1

      @@Killguf рад помочь

    • @Killguf
      @Killguf Před 8 měsíci +1

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

    • @Illya.Landar
      @Illya.Landar  Před 8 měsíci +1

      @@Killguf образование бросил с 2 курса(учился на программиста) года 2. Но уже во время этих 2 лет я чу чуть зарабатывал с фриланса

  • @bikadV
    @bikadV Před 2 měsíci

    Автор, пожалуйста увеличивай шрифт в редакторе когда записываешь свои видео! Мы ведь не на весь экран разворачиваем, нам ведь еще и в редактор все надо записывать!

  • @ihate_frilancer_po_jitty

    вот это нормальный шовндавн

  • @user-ov6vh5iu5r
    @user-ov6vh5iu5r Před 2 lety +2

    Здравствуйте, подскажите пожалуйста как добавить на против button стрелочку?

  • @user-eg1ul4rm2p
    @user-eg1ul4rm2p Před 2 lety +1

    При добавлении padding-top и padding-bottom к контенту, он перестают сворачиваться полностью. Подскажите, пожалуйста, как решить эту проблему.

    • @Illya.Landar
      @Illya.Landar  Před 2 lety

      2:09 использую padding и все работает.

    • @Illya.Landar
      @Illya.Landar  Před 2 lety

      Опиши детальней

    • @user-sf3ni3dz2x
      @user-sf3ni3dz2x Před 2 lety

      Тоже возник такой вопрос, скорее всего я сильно опоздал, но если вдруг у кого-нибудь тоже возникнет, сэкономлю 5 минут времени.
      В данном примере не стоит задавать отступы конкретно content, лучше использовать его как обёртку и работать с внутренними

    • @milkovich_1938
      @milkovich_1938 Před rokem +1

      @@Illya.Landar Ты используешь padding для кнопки, а Евгений имел ввиду добавление падингов к контенту, в этом случае он не скрывается методом height: 0 , ведь отступы остаются.

    • @milkovich_1938
      @milkovich_1938 Před rokem

      Если ты всё ещё ищёшь - создай класс который будешь добавлять к своему контенту при нажатии, и в неём добавляй паддинг и высоту.

  • @sakinurs3084
    @sakinurs3084 Před rokem +1

    Что делать если контенту задать паддинг, то макс-хейт уже не работает

    • @Illya.Landar
      @Illya.Landar  Před rokem

      Используй маржин вместо падинг

  • @amvanime5478
    @amvanime5478 Před 2 lety

    Классный видос, но как сделать, что еще и класс добавлялся нажатому, а тому кто не нажат удалялся?

    • @Illya.Landar
      @Illya.Landar  Před 2 lety

      Ты прям сформировал гугл запрос) Просто найди в документации javascript как удалять добавлять классы И при клике удаляй и добавляй классы

    • @user-ti2kx5fu6u
      @user-ti2kx5fu6u Před rokem

      Это не сложно, используешь онклик ремум и эдиди, погугли лучше

  • @oleksiipivniev8433
    @oleksiipivniev8433 Před 5 měsíci +1

    Бля, три цикла для простого акордеона 😆

    • @Illya.Landar
      @Illya.Landar  Před 5 měsíci

      Получаеться

    • @oleksiipivniev8433
      @oleksiipivniev8433 Před 5 měsíci

      ​@@Illya.Landar Да я понял )

    • @Illya.Landar
      @Illya.Landar  Před 4 měsíci

      @@oleksiipivniev8433 Может ты тот гений который найдет решение без циклов.

    • @oleksiipivniev8433
      @oleksiipivniev8433 Před 4 měsíci +1

      @@Illya.Landar Насчёт гения не знаю, но, чтобы не использовать три цикла, можна вспомнить про делегирование )

  • @12394465
    @12394465 Před rokem

    Учусь на фронтенда и js не понимаю вообще. Дали задание, где нужно подключить аккордион с готовым решением, но ни одна библиотека не работает и метод автора тоже...ну к черту этот js

    • @Illya.Landar
      @Illya.Landar  Před rokem

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

  • @user-fu7uu9gp7c
    @user-fu7uu9gp7c Před rokem

    modal.js:194 Uncaught TypeError: Cannot read properties of null (reading 'addEventListener')
    at modal.js:194:20
    script.js:8 Uncaught TypeError: Cannot read properties of null (reading 'style')
    at HTMLButtonElement. (script.js:8:20)

    • @Illya.Landar
      @Illya.Landar  Před rokem

      Не правильному элементу задал addEventListener

  • @user-vv4xj9xp6p
    @user-vv4xj9xp6p Před 2 měsíci

    ЧЁРТ

  • @user-my4el3ob1o
    @user-my4el3ob1o Před 2 lety

    у этого скрипта как минимум 3 ошибки

  • @user-pp1lv2hh5i
    @user-pp1lv2hh5i Před rokem +1

    Написал точь в точь, но почему то аккордеон только открывает, но не закрывается....
    document.querySelectorAll('.q-answers__title').forEach((el) => {
    el.addEventListener('click', () => {
    let content = el.nextElementSibling;
    if (content.style.maxHeight) {
    document.querySelectorAll('.content').forEach((el) => el.style.maxHeight = null)
    } else {
    document.querySelectorAll('.content').forEach((el) => el.style.maxHeight = null)
    content.style.maxHeight = content.scrollHeight + 'px'
    }
    })
    })

    • @Illya.Landar
      @Illya.Landar  Před rokem

      Значит не точь в точь. В комментариях у всех все получается. Кроме js еще html важен. Пересмотри код

    • @maks6148
      @maks6148 Před 10 měsíci

      Код рабочий, применил у себя. Копируйте.