Спойлер и аккордеон на HTML CSS и JavaScript, с возможностью включения на определенной ширине экрана

Sdílet
Vložit
  • čas přidán 16. 06. 2024
  • В этом уроке научимся делать очень интересные спойлеры и аккордеоны, которые можно включать или выключать в зависимости от ширины экрана. Писать будем на HTML CSS и чистом JavaScript
    ☝️Fairo - единственное приложение, в котором все бизнес-функции включены в один бизнес-аккаунт за фиксированную ежемесячную плату.
    👉Сайт: bit.ly/3sBJJ73
    👉Скачать приложение для Android: bit.ly/3qEWJXQ
    👉Скачать приложение для iOS: apple.co/32QExjV
    👉Материалы урока (патреон): / 51473114
    💪 Курс по верстке: edu.fls.guru
    🔴 Карта канала: miro.com/app/board/o9J_lZB3YKI=/
    🔴 Получить доступ к плюшкам + поддержать канал: / freelancerlifestyle
    🔴 Telegram канал: t.me/freelancer_lifestyle (teleg.run/freelancer_lifestyle)
    🔴 Telegram чат по верстке: t.me/flschat (teleg.run/flschat)
    🔴 Facebook: / freelancerlifestyle
    🔴 Instagram: / freelancer.lifestyle
    00:00 - В выпуске
    00:32 - РЕКЛАМА: Fairo
    01:31 - Пишем HTML
    04:54 - Пишем CSS
    07:23 - Пишем JavaScript
    33:24 - Результат
    👉 @IT-ПРИСТРАСТІ, українськомовний канал присвячений інтерв'ю з цікавими IT-спеціалістами - / @itpassions
    👋 Меня зовут Женя Андриканич, я IT - специалист, занимаюсь разработкой сайтов. На этом канале, я регулярно и в максимально доступном формате буду делиться с тобой своим опытом, наработками, секретами и лайфхаками!
    Ссылка на канал: / freelancerlifestyle
    🤟 Живи, а работай в свободное время! ©

Komentáře • 149

  • @FreelancerLifeStyle
    @FreelancerLifeStyle  Před 3 lety +12

    Вот вам и практика на JS :)
    🔴 Карта канала: miro.com/app/board/o9J_lZB3YKI=/
    🔴 Получить доступ к плюшкам + поддержать канал: www.patreon.com/freelancerlifestyle
    🔴 Telegram канал: t.me/freelancer_lifestyle (teleg.run/freelancer_lifestyle)
    🔴 Telegram чат по верстке: t.me/flschat (teleg.run/flschat)
    🔴 Facebook: facebook.com/freelancerlifestyle
    🔴 Instagram: instagram.com/freelancer.lifestyle

    • @tyncherov_v7663
      @tyncherov_v7663 Před rokem

      Привет, можешь подсказать пожалуйста почему в консоли выходит ошибка "Uncaught ReferenceError: mediaBreakpoint is not defined"

  • @NillineReshetnyak
    @NillineReshetnyak Před 3 lety +22

    Только вчера искал информацию по поводу спойлеров на чистом js. Огромное спасибо тебе за такой контент!)

  • @red53dhj5ry32rtty83e
    @red53dhj5ry32rtty83e Před 2 lety

    Спасибо, Дружище! Именно ты мотивируешь меня не бросать изучать вёрстку.

  • @user-lm9gg6oc6n
    @user-lm9gg6oc6n Před 2 lety +5

    По началу мало что понимал, очень сложно и много кода, и когда закончил всё работало как то дёргано, а спойлеры на медиа запросах так вообще не работали. Но после часа копания в коде я не только исправил ошибки, но и понял разобрался во всём материале. Спасибо за уроки!

  • @user-wh2so2iz1o
    @user-wh2so2iz1o Před 3 lety

    Спасибо тебе, Женя! Учусь по твоим урокам и хорошо осваиваю материал 😋

  • @web2905
    @web2905 Před 3 lety +1

    Спасибо. Круто. Понравилась фраза: "Проверим на наличие чувачков". Прям настроение поднялось :)

  • @alexforce7129
    @alexforce7129 Před 3 lety

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

  • @user-rj3pp7hj7i
    @user-rj3pp7hj7i Před 3 lety +13

    Очень круто, спасибо! Пожалуйста не прекращай делать такие видео

  • @ye5275
    @ye5275 Před 2 lety

    Невероятный урок! Спасибо большое!

  • @konstantino7016
    @konstantino7016 Před 3 lety +7

    Ух ты, ещё новое видео! И когда ты Женя успеваешь их запиливать?)) круто!

  • @user-um5vx4ez1p
    @user-um5vx4ez1p Před 3 lety +2

    Привет! Жека, я ждал этот видос! Спасибо! Как всегда, горы плюшек сверху 😊

  • @vakaa21
    @vakaa21 Před 3 lety +9

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

  • @artikor8071
    @artikor8071 Před 3 lety

    Шик, блеск красота)
    Ждем Choices Select :DDDD

  • @shukonfadah5725
    @shukonfadah5725 Před 2 lety

    все ваши виде это лучшее что можно найти на русскоязычном сегменте! Я поддерживаю вас во всём! желаю мира и спокойствия вашей стране и семье

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

    Как же вовремя это видео! Спасибо большое!

  • @user-fz9eh9bj5b
    @user-fz9eh9bj5b Před 3 lety +1

    Женя, огромное спасибо! Обучаюсь на ваших видео!

  • @lostsouls3151
    @lostsouls3151 Před 2 lety

    Ну просто кладязь информации. Спасибо огромное!)

  • @laikaboss9047
    @laikaboss9047 Před 3 lety

    Какой же блин афигенный канал. Очень люблю все твои видео

  • @user-rp4xr6vf2m
    @user-rp4xr6vf2m Před 3 lety +2

    Женя, как всегда, на высоте! Спасибо за видео !!!!

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

    Жека, Ну эт прям оч крутой выпуск получился. Очень подробно. Спасибо)))

  • @user-fl3gs6zx5g
    @user-fl3gs6zx5g Před 3 lety +6

    Спасибо бро, ты многому меня научил) Respect

  • @gio2156
    @gio2156 Před 2 lety +9

    19:00 addListener считается устаревшим и может быть выпилен в новых версиях браузеров, вместо него лучше писать matchMedia.addEventListener('change', () => {
    initSpoilers(spoilers, matchMedia);
    });

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

      У меня и с этим кодом не работает

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

      выпилен? серьезно? еще лет 10 будет работать...

  • @user-np9mq5xc7j
    @user-np9mq5xc7j Před 3 lety +1

    Мозг закипел =D Спасибо за такой контент!!!

  • @rnyt.o
    @rnyt.o Před 3 lety +3

    Даже странно, что у такого перспективного человека так мало аудитории. Надеюсь вы не перестанете трудиться над своими проектами.
    Желаю удачи во всем дальнейшем развитии!

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

    Спасибо большое за урок 👍

  • @DashaGermash
    @DashaGermash Před rokem

    Дякую! Дуже гарна штука. Зробила за допомогою її на своєму сайті-резюме спойлери з досвідом.

  • @yaroslavqwerty8609
    @yaroslavqwerty8609 Před 3 lety

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

  • @user-yi9pq3th4o
    @user-yi9pq3th4o Před 3 lety +1

    Спасибо большое!!! Как хорошо что ты есть!!!

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

    Очень полезная информация Спасибо Хорошая задумка разделить экран на два, но лучше когда их показываешь иногда, а код писать на полном экране и в большем масштабе ( лучше читается ) Сейчас на видео очень мелко

  • @deniskotov
    @deniskotov Před 3 lety +6

    Женя, твои обучающие видосы для меня - как сходить в кафешечку с другом, взять капучино и чизкейк и просто хорошо пообщаться) Только научиться в этом случае)

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

    Здорово! Спасибо большое! Предполагаю, что многие были бы очень благодарны тебе ещё и за кастомный select на js))

    • @FreelancerLifeStyle
      @FreelancerLifeStyle  Před 3 lety

      Ага)

    • @kotlancer
      @kotlancer Před 3 lety

      Он уже есть, только без объяснений. Доступен патреонам, например, в уроке про формы

    • @ilyaprotsenko1023
      @ilyaprotsenko1023 Před 3 lety

      @@kotlancer В выше написанном имелось в виду то, что тем, кто не может оформить платную подписку на патреоне, очень бы хотелось увидеть бесплатное видео про кастомизацию select на js с объяснениями от Жени)

    • @kotlancer
      @kotlancer Před 3 lety +1

      Уверен, что будет, когда у Жени руки до этого дойдут)

  • @commentator7826
    @commentator7826 Před 3 lety

    Спасибо, лайк и комментарий в поддержку канала!)

  • @valentynbilan
    @valentynbilan Před 3 lety +3

    Ураааа, новое видео! 😍💪🏻

  • @user-eh8sz3nr5y
    @user-eh8sz3nr5y Před 3 lety

    очень интересно смотреть, спасибо

  • @jabaaaa
    @jabaaaa Před 2 lety

    Попробовал - работает, спасибо, буду пользоваться !:)

  • @user-xr7wr8rt4v
    @user-xr7wr8rt4v Před 3 lety +1

    Так держать, палец вверх!

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

    Лайк и коммент в поддержку канала 👍

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

    Видео попозже посмотрю но лайк сейчас ставлю)

  • @danilafipsk
    @danilafipsk Před 3 lety

    Фрилансер привет! Твои видосы это пушка, узнал по ним много нового, запили гайд по WordPress, по популярному плагину advanced custom fields, как его настраивать в админке понятно, а вот как интегрировать в определенные области например у меня вызывает затруднение, было бы круто увидеть урок по нему. Так как там нужно делать определенные php вставки, а у меня с php пока туговато:) спасибо!

  • @kotlancer
    @kotlancer Před 3 lety +5

    Ой-ёй-ёй-ёй-ёй, если еще и подобные табы нам "подаришь", точно уйду от JQ! :D
    Большое спасибо, забрал себе :))))

  • @royal_aver4403
    @royal_aver4403 Před 2 lety

    Женя спасибо за урок! Вот бы еще отдельно показал код где не нужно привязываться к ширине экрана

  • @evgenijshevchuk1551
    @evgenijshevchuk1551 Před 3 lety

    Круто, удачи тебе и спасибо

  • @stefanskyi_
    @stefanskyi_ Před 3 lety +1

    👍 Вподобайка та комент 🔥🔥🔥

  • @sanjar5862
    @sanjar5862 Před 3 lety +1

    Спасибо вам за ваши полезные уроки и видео, хотел спросить сможете ли вы сделать видео про семантику, где какие тэги надо использовать и правильное наменованте классов? Спасибо заранее:)

  • @kyryloloshka
    @kyryloloshka Před rokem

    Все вийшло. Працює. Тепер користуюся цим функціоналом. Дякую за урок.

  • @InspireInki
    @InspireInki Před 3 lety

    Здравствуйте, спасибо огромное за ваши старания! Хотелось бы спросить :"Когда плейлист с посадкой сайта на cms? "

  • @daniayrkulsin3836
    @daniayrkulsin3836 Před 3 lety +4

    Заранее спасибо!

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

    Мега, мега штука ❤‍🔥

  • @topalek
    @topalek Před 3 lety +6

    Спасибо, отличное видео. нет ли в планах, записать видео по сознанию кастомного выпадающего списка (select)? возможно зависимого от другого селекта?

  • @ghenadirev2725
    @ghenadirev2725 Před 2 lety

    Спасибо Женя - великолепный урок.
    А как горизонтальный аккордеон - будет работать?

  • @maks-rst
    @maks-rst Před 3 lety +2

    Эхх, когда-нибудь я достигну уровня JS, а пока работаем над практикой в Scss! (Видос не смотрел, но лайкос естестно влепил)

  • @vitamax3777
    @vitamax3777 Před 3 lety +1

    круто очень!!

  • @hannstar2236
    @hannstar2236 Před 3 lety +1

    Жень, давай больше по основам js) по html/css у тебя всего навалом, а вот по базовому javascript очень не хватает, альтернативной подачи к сожалению не нахожу)

    • @FreelancerLifeStyle
      @FreelancerLifeStyle  Před 3 lety +1

      Так целый курс по основам js выпустил..

  • @kolyabyntov
    @kolyabyntov Před 3 lety +4

    Я не успеваю просмотреть видео)) пока я смотрю одно, выходит два

  • @r3pz349
    @r3pz349 Před 3 lety

    Жень, а будет ли видос про кроссбраузерность и как ее добиться?

  • @plasticassholes8403
    @plasticassholes8403 Před 3 lety

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

  • @alonahilbert9959
    @alonahilbert9959 Před rokem

    Дякую за відео👍

  • @zmeygorynych5684
    @zmeygorynych5684 Před 3 lety

    Годнота)

  • @user-lb4xg6jf6j
    @user-lb4xg6jf6j Před 3 lety

    Жека, а ты можешь сделать видео по натяжке верстки на движки опенкарт и вордпресс? Я так понимаю на фриланс биржах такая услуга весьма популярна.

  • @viktorkasap
    @viktorkasap Před 3 lety

    Классный видос, спасибо. А почему ты не юзаешь spread [...elements], чтобы получить массив из коллекции нод листа? На выходе получается тот же массив.

  • @user-yw7nm7wg2d
    @user-yw7nm7wg2d Před 3 lety +10

    Жень, а что такое в //событиях addListener ? Что-то я тупанул... не могу найти ответ в google((( Это же не метод addEventListener() наверное ?

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

      Это устаревший метод интерфейса MediaQueryList, сейчас вместо него нужно использовать .addEventListener('change', callback), вместо .addEvent(callback)

  • @DzmitryArtsiamkou
    @DzmitryArtsiamkou Před 3 lety

    Спасибо!!!

  • @user-wf4np1ne2c
    @user-wf4np1ne2c Před 3 lety

    прикольно, ты часто эти фишки используешь?

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

    спасибо, я кажется познал споллердзен

  • @jahongirbektemirov6516
    @jahongirbektemirov6516 Před 3 lety +3

    Нажал лайк не посмотреть до конца, потому что знаю что это классно

  • @user-df9tk5bi9z
    @user-df9tk5bi9z Před 3 lety

    Привет! Спасибо за твои видосы. По возможности создай менюшку как на Алиэкспресс, которая выезжает вправо (мега меню)

  • @stelsboii
    @stelsboii Před 3 lety

    Жека, подскажи
    Ты работал с вордпресс, как этот атрибут (data-spoller) добавить к пункту меню(напр: для меню для футера), если у нас меню редактируется через админку

    • @valehsalimov
      @valehsalimov Před 3 lety +1

      Почитайте статью про Walker_Nav_Menu{} на wp-kama
      Там есть пример создания кастомного меню где вы можете редактировать как ul так и элементы li
      Например вставить атрибут только для определенного пункта меню (Новости в данном примере)
      $attr = '';
      if ($item->post_name == 'news') {
      $attr .= ' data-spoller ';
      }
      $output .= $indent . '';
      --------------------------------------
      Если атрибут нужен на весь список ul, то можно обойтись без Walker_Nav_Menu{}

    • @stelsboii
      @stelsboii Před 3 lety

      @@valehsalimov спасибо) почитаю

  • @RRRAMDesh
    @RRRAMDesh Před 2 lety

    А виджет под спойлер тоже можно поместить?

  • @user-gg8gt7jk8l
    @user-gg8gt7jk8l Před 3 lety

    Женя, JS-фреймворк не учил никакой?

  • @deniskotov
    @deniskotov Před 3 lety

    Жека, ты нас всех 2 года обманывал. Ты не верстальщик. Ты программист в первую очередь!!!))) А уже потом верстальщик) За слайдТогл отдельное спасибо.

  • @user-gu6ku3ni7b
    @user-gu6ku3ni7b Před 3 lety

    Как сделать так, чтобы при наведении на ссылку, состоящую из нескольких элементов, в том числе картинки, менялся цвет фона и шрифта?

  • @danielkhachaturian
    @danielkhachaturian Před 3 lety +6

    Почему data-spollers? А не data-spoilers?

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

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

  • @Reaper-zh7si
    @Reaper-zh7si Před 3 lety +1

    Сможете рассказать про "говнокод"?
    Часто вижу, как комментаторы обвиняют блогеров-верстальщиков в "говнокодировке", не уточняя где именно автор допускал ошибки.

    • @user-dv9fk1hd3s
      @user-dv9fk1hd3s Před 3 lety +3

      Говнокод может вообще не содержать ошибок и исправно работать. Только он может быть избыточным (больше 100 строк кода для спойлера), с неоптимально подобранными именами (треть слов в коде это spoller в разных вариациях) ввиду чего сложно читается и понимается

  • @dovudtulkinjonov5400
    @dovudtulkinjonov5400 Před 2 lety

    Ребят, кто нибудь может скинуть материалы урока?

  • @stelsboii
    @stelsboii Před 2 lety

    👍

  • @user-vatican
    @user-vatican Před 10 měsíci

    интересно было бы посмотреть где и когда его можно применять?

  • @Rb-ur5em
    @Rb-ur5em Před 3 lety

    Добрый день, Может сможете помочь
    Подскажите где можно найти простую карточную игру (качество и сложность не важно. лучше что-то по проще..)
    HTML, CSS, JS, MySQL
    Описание: Регистрация игрока, Минимум два участника
    Буду очень, благодарен, Спасибо)!

  • @Roman.Volodchenkov
    @Roman.Volodchenkov Před rokem

    Можна зробити додатковий захист від дурнів.
    Наприклад, візьмемо параметри (650,min).
    Якщо замість першого параметру поставити пробіл, тобто ( ,min). То такий спойлер буде вважатися як спойлер з медіа запитом, тому що [0] елемент буде існувати, але такий запис повинен вважатися як звичайний спойлер.
    Для вирішення цього питання достатньо додати .trim() під час повернення значення для звичайного спойлера.
    Наприклад:
    const spoilersArray = Array.from(document.querySelectorAll('[data-spoilers]'));
    if (spoilersArray.length > 0) {
    const spoilersRegular = spoilersArray.filter((element) => {
    return !element.dataset.spoilers.split(",")[0].trim();
    });
    };
    Але щоб запис ( ,min) не вважався медійним спойлером, .trim() також треба додати до повернення значення медійних спойлерів. В іншому випадку такий запис буде потрапляти в обидві категорії.
    const spoilersMedia = spoilersArray.filter((element) => {
    return element.dataset.spoilers.split(",")[0].trim();
    };

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

    Прикольно, но не вижу смысла так заморачиваться со стандартным элементом интерфеса, делающимся в 2 клика с помощью готовых решений. Разве что попрактиковать JS?

  • @alexkom7952
    @alexkom7952 Před 2 lety

    Отличный спойлер!) но сегодня больше 3 часов не мог понять почему он у меня не работает, а оказалось, что нельзя задавать какое либо значение display скрывающемуся блоку...

  • @meirjanilesh2378
    @meirjanilesh2378 Před 3 lety +3

    Трейтий!!

  • @user-mw8hz1hc6z
    @user-mw8hz1hc6z Před 3 lety

    Привет, Жека. Наверное я не твоя фактическая аудитория, но хочу тебе выразить респект и слова благодарности. Так вышло, что я учился на факультет информационных систем. Подошло дело диплома, и стал выбор отдавать 50к р. или чего-то делать. Слава богу, я предприниматель и у меня есть верстка сайта, которую мне делали за 10к, с js. Ну в общем за 3 дня я посмотрел все твои ролики из плейлиста «курс по верстке». Ну так вот еду домой после защиты, защитил на 5. Никогда в жизни не притронусь к верстке сайтов, зато смогу контролировать исполнителей. В общем просто от чистого сердца спасибо за такой доступный способ изложения и за огромный тяжёлый труд и кучу убитого на это (сценарий, съёмки) времени. Спасибо)

  • @veterok54
    @veterok54 Před 3 lety +1

    Жека, все круто. Единственное что режет слух, это английский. Форыч, это не фамилия, это кемел кейс, а значит 2 разных слова. Фор ич. Ну и так далее. Советую все таки воспользоваться Гугл переводчиком и там есть прослушать. Зачастую говорит правильно. Это не придирка, все же делай как тебе удобно, просто эту мелочь можно легко подтянуть как по мне, а в идеале, если бы ты говорил ещё и перевод данной функции или свойства.
    Тот же фор ич переводится как "по каждому", "для каждого". Уже сразу становится намного проще понимать что происходит и что ты делаешь. Вот это было бы круто. Но тут надо посидеть пару часов, потыкать в Гугл переводчик слова с какого то проекта, послушать, что то где то записать. Но мне кажется день, который ты на это все потратишь, явно не пройдет в пустую, потому что я надеюсь у тебя ещё не один ролик выйдет))

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

    нихера не понял, но было интересно)

  • @AlexJ0ker
    @AlexJ0ker Před 3 lety

    Классно, может кто подсказать как обработать клик на мобилке, click(), on() тачстарты/енды и т.д. не работают

  • @alien2364
    @alien2364 Před 2 lety

    Жека...... (будет спойлер, я скажу тебе спасибо за спойлер!) Спасибо за спойлер!

  • @smartpeople4329
    @smartpeople4329 Před 2 lety

    Аккардеоны с заданной шириной не работают, перепроверил все, html, css и самое главное js, вроде ошибок нет... не работаю, даже + не выводится...

  • @netbin
    @netbin Před 3 lety

    вообще непонятно причем тут феиро с спойлеры на чистом джаваскрипте, конец связи

  • @JUN-17
    @JUN-17 Před rokem +1

    16:12 и всё же мне не понятна логика 38-ой строки.

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

    Что-то ВООБЩЕ не работает, все точно также сделал. Или код уже устарел?

    • @bake5448
      @bake5448 Před rokem

      тож самое 4часа потратил,у вас уже получилось?

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

      @@bake5448 нет

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

      автор всё усложняет((аккардеон делается за 4 минуты,с 2мя строчками кода!

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

    Почему он пишит spoller вместо spoiler

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

    ++++

  • @bandhdhdh7188
    @bandhdhdh7188 Před 2 lety

    Шрифт слишком маленький для удобного просмотра

  • @user-ri1ry7sx6p
    @user-ri1ry7sx6p Před 3 lety +3

    Первый!!!

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

    Немного смущают 36 ошибок.

  • @user-us1yq2jv4w
    @user-us1yq2jv4w Před 4 dny

    мне одному так тяжело дается JS?

  • @user-gg4dv2rx2g
    @user-gg4dv2rx2g Před 3 lety

    Жека, как всегда, ЛУЧШИЙ!!!