Тёмный

CSS: Плавная анимация скрытия 

PurpleSchool | Anton Larichev
Подписаться 41 тыс.
Просмотров 159 тыс.
50% 1

#shorts Сегодня сделаем плавную анимацию скрытия через grid.
🔗 Ссылки:
🎉🎉🎉 Мой новый курс по HTML и CSS: purpleschool.ru/course/html-css
- 19 часов видео
- 19 упражнений
- 15 тестов
- Неограниченный доступ и гарантия возврата средств
🎓 Мои курсы по разработке: purpleschool.ru
👨‍💻 Клуб разработчиков: purpleschool.ru/club
💬 Telegram канал с полезными советами: t.me/purple_code_channel

Опубликовано:

 

29 июн 2023

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 136   
@PurpleSchool
@PurpleSchool 11 месяцев назад
🔗 Ссылки: 🎉🎉🎉 Мой новый курс по HTML и CSS: purpleschool.ru/course/html-css - 19 часов видео - 19 упражнений - 15 тестов - Неограниченный доступ и гарантия возврата средств 🎓 Мои курсы по разработке: purpleschool.ru 👨‍💻 Клуб разработчиков: purpleschool.ru/club 💬 Telegram канал с полезными советами: t.me/purple_code_channel
@techno-tramp
@techno-tramp 11 месяцев назад
Это бомба. Делал через js, через ResizeObserver, а тут 2 строчки. Браво.
@PurpleSchool
@PurpleSchool 11 месяцев назад
Спасибо!
@yourtruem8
@yourtruem8 5 дней назад
вот таким я бы хотел видеть весь ютуб, четким, быстрым, полезным, по делу! лайк подписка ))
@PurpleSchool
@PurpleSchool 5 дней назад
Спасибо!
@Serega5j
@Serega5j 10 месяцев назад
Годный лайфхак. Спасибо тебе добрый человек. Замучили эти не анимируемые значения.
@PurpleSchool
@PurpleSchool 10 месяцев назад
Пожалуйста!
@user-ck5nw5ui9u
@user-ck5nw5ui9u 11 месяцев назад
Я такое обычно через max-height 0 делаю. В css max-height: 0; overflow: hidden; visibility: hidden. По клику на кнопку вешаю класс с visibility: visible и добавляю на скрытый контент content.style.maxHeight = content.scrollHeight + 'px';
@xdayx53
@xdayx53 7 месяцев назад
тоже!
@mit7871
@mit7871 7 месяцев назад
Это дефолтный костыль, но гриды сейчас уже везде работают, можно их юзать.
@Vafleshugen
@Vafleshugen 10 месяцев назад
Если задуматься, то мы вроде как элементарные вещи делаем костылями 👍🏿👍🏿👍🏿. Фронтенд хуле
@bassboosted1184
@bassboosted1184 7 месяцев назад
Так весь фронтенд сам по себе один сплошной костыль. Он изначально так задумывался. Поэтому нечему удивляться, что банальную анимацию мы делает через инструменты которые предназначались для другого. Честно говоря, такой фронтенд уже навсегда. Ибо, что бы было что-то нормальное, нужно переделывать всё с нуля. Вот сесть компаниями которые пилят браузеры, спроектировать все адекватно и зарелизить.
@xOceanSpirit
@xOceanSpirit 6 месяцев назад
​@@bassboosted1184 ага, ага, все что они спроектируют сейчас, получит поддержку 95% лет через 10. Ибо юзверей насильно не обновишь. Так что костыляйте, господа, костыляйте.
@user-sc9cn3os6w
@user-sc9cn3os6w 11 месяцев назад
Больше таких видео, пожалуйста 🙏
@PurpleSchool
@PurpleSchool 11 месяцев назад
Хорошо)
@youngwinners8351
@youngwinners8351 10 месяцев назад
СПАСИБО БОЛЬШОЕ! ЭТО ТО, ЧТО Я ИСКАЛ!!!
@PurpleSchool
@PurpleSchool 10 месяцев назад
Пожалуйста!
@mexvision-3556
@mexvision-3556 11 месяцев назад
Всегда делал через js. Спасибо)
@PurpleSchool
@PurpleSchool 11 месяцев назад
Пожалуйста!
@AtlantZ
@AtlantZ 9 месяцев назад
Ты ж мой герой, ахахах. Благодарю!
@PurpleSchool
@PurpleSchool 9 месяцев назад
👍
@michaelkamko
@michaelkamko 5 месяцев назад
Спасибо! Можно еще через clip path (не помню точно, как, но я пробовал - работает). Она как раз для этого и создана. Только там с производительностью и другими нюансами могут быть локальные траблы.
@PurpleSchool
@PurpleSchool 5 месяцев назад
👍
@freedom_twin
@freedom_twin 10 месяцев назад
Гениально!!!)
@PurpleSchool
@PurpleSchool 10 месяцев назад
👍
@7iomka
@7iomka 11 месяцев назад
Забыли сказать о поддержке браузеров анимации свойство) Сафари вплоть до 15.6 версии не анимируют эти свойства...
@PurpleSchool
@PurpleSchool 10 месяцев назад
Верно, спасибо за дополнение
@virtuoz-ru
@virtuoz-ru 10 месяцев назад
Сафари это тот же интернет эксплорер. Служит для скачивания нормального браузера.
@7iomka
@7iomka 10 месяцев назад
@@virtuoz-ru расскажи это яблочникам, которые адепты всего "родного"
@PiskenDragen
@PiskenDragen 11 месяцев назад
А ещё можно вместо height:0 и height:auto использовать min-height/max-height
@ivalar8891
@ivalar8891 10 месяцев назад
И тогда скорость выполнения анимации будет зависеть именно от этих значений, а не от реальной высоты. То есть если задашь max-height 500px, а реальная высота будет 100px, то при линейной функции скорости анимация отработает за 20% времени от заданного.
@superdjony7660
@superdjony7660 5 месяцев назад
Супер, то что я искал, а то я щас верстаю сайт для портфолио, но реанимировать по высоте не получилось)
@PurpleSchool
@PurpleSchool 5 месяцев назад
👍
@vladislav.c
@vladislav.c 10 месяцев назад
Спасибо.
@PurpleSchool
@PurpleSchool 10 месяцев назад
Пожалуйста
@user-wh6ix3lo6g
@user-wh6ix3lo6g 10 месяцев назад
Балин....сиолько пробовал это сделать на чистом жс, но никогда не получалось ))) Красота !
@PurpleSchool
@PurpleSchool 10 месяцев назад
Спасибо!
@user-wh6ix3lo6g
@user-wh6ix3lo6g 10 месяцев назад
Вернее, на чистом css пробовал...не получалось, и всегда на js делал. Немного не то ранее написал)
@user-xy9zd1bt1i
@user-xy9zd1bt1i 3 месяца назад
=)@@user-wh6ix3lo6g
@JohanLiebert2003
@JohanLiebert2003 25 дней назад
Супер тема, на работе делали лендос со страницей faq, версталщик начал чудить и в useEffect обращаться к элементу через document, брать у него высоту по offsetHeight и далее в styles присваивать, бред чисто, я психанул и залез в стили, хотя не моя прирагатива, ахахха
@PurpleSchool
@PurpleSchool 25 дней назад
👍
@artemstarostyants8368
@artemstarostyants8368 11 месяцев назад
Гриды - мощь…
@PurpleSchool
@PurpleSchool 11 месяцев назад
Именно!
@papo4kacleo
@papo4kacleo 4 месяца назад
Что за расширение на vs code? Красивая картинка
@rashiddeveloper5995
@rashiddeveloper5995 11 месяцев назад
Блин, спасибо большое, теперь я все больше стал любить гриды 😂😂😂
@PurpleSchool
@PurpleSchool 11 месяцев назад
Пожалуйста)
@user-ml9bm8rx9q
@user-ml9bm8rx9q 10 месяцев назад
Что за шрифт и тему используете? И как так же сделать красивий VS code?
@PurpleSchool
@PurpleSchool 10 месяцев назад
Тема Bearded Theme Vivid Purple, шрифт, JetBrains Mono, в некоторых видео AIWriter Mono
@alexkreyn8829
@alexkreyn8829 10 месяцев назад
Не проще calc(auto + 0) ?
@nocomments5529
@nocomments5529 11 месяцев назад
Только гридами пользуюсь!
@PurpleSchool
@PurpleSchool 11 месяцев назад
👍
@kickdoe6793
@kickdoe6793 11 месяцев назад
Для чего добавлять еще одну обертку с min-height: 0?
@PurpleSchool
@PurpleSchool 11 месяцев назад
Иначе он не будет скрываться при сворачивании.
@user-bi3lx3by6e
@user-bi3lx3by6e 11 месяцев назад
Делаю через js, что бы после закрытия, элемент исчезал. Заметил что при большом количестве таких элементов браузер начинает лагать
@PurpleSchool
@PurpleSchool 11 месяцев назад
Возможно что-то написано не оптимально
@eugenbrandon1856
@eugenbrandon1856 10 месяцев назад
Не самый идеальный способ. Он хороший, да, но не идеальный. Он похож на анимирование min-height, но немного другой. Немного лучше. И анимация к сожалению будет не плавная и с задержкой если нужно немного "приоткрыть" внутренность. Например вместо min-height: 0 сделать min-height: 100px Это происходит потому что в мнимое расширение grid-template-rows в течении этих 100px нам не видно, а после прохода данной отметки, плавность уже набрала свои обороты и кроме задержки мы получаем резкий "рывок". Примерно такая же проблема при транзишене на min-height. Советуют ставить любое большое значение на выходе, но чем оно больше, тем больше будет задержка (снова же, потому что мнимая анимация продолжается) и плавность тоже уйдет.
@PurpleSchool
@PurpleSchool 10 месяцев назад
👍
@fapdayz
@fapdayz 10 месяцев назад
В Bootstrap по дефолту анимированный collapse/expand, хахв
@user-hr6pr5xy3d
@user-hr6pr5xy3d 11 месяцев назад
Обычно я анимирую opacity и scale. Работает по сути так же
@PurpleSchool
@PurpleSchool 11 месяцев назад
👍
@venskou
@venskou 11 месяцев назад
Тож варик, но анимация будет по разному выглядеть
@shure348
@shure348 10 месяцев назад
ie вышел из чата можно анимировать max height
@Galaxzier
@Galaxzier 10 месяцев назад
ie-юзеры обойдутся без анимации
@dibof228
@dibof228 5 месяцев назад
Я вообше не добавляю на свои сайте какой то замороченный Фронтенд из-за того что я мало разбираюсь в CSS да и я делаю на своих сайтах поддержку старых браузеров
@user-mq2fz4zs8y
@user-mq2fz4zs8y 7 месяцев назад
В каком редакторе текста ты кодишь? Я новичек
@PurpleSchool
@PurpleSchool 7 месяцев назад
Я работаю в Neovim, но новичкам рекомендую VSCode, который как раз на видео.
@unky007
@unky007 3 месяца назад
Что за программа для написания кода срочно?
@PurpleSchool
@PurpleSchool 2 месяца назад
VSCode
@scraapl
@scraapl 10 месяцев назад
у вас какая тема для VS code пожалуйста
@PurpleSchool
@PurpleSchool 10 месяцев назад
Bearded Theme Vivid Purple
@bleckVirus
@bleckVirus 9 месяцев назад
как то мне гриды не полюбились в сердечке флексы и проще и привычней
@PurpleSchool
@PurpleSchool 9 месяцев назад
Иногда они удобнее
@user-pb9tb2vn2t
@user-pb9tb2vn2t 7 месяцев назад
Проще через max-height это делать. И не надо еще одно вложение делать с гридами
@gapurdev
@gapurdev 10 месяцев назад
А как с поддержкой этого решения в браузерах?
@PurpleSchool
@PurpleSchool 10 месяцев назад
Если убрать IE, то везде.
@Russian_Morty
@Russian_Morty 3 месяца назад
А где вы пишите коды на html, css и js можете дать программу где всё бесплатно пожалуйста
@PurpleSchool
@PurpleSchool 3 месяца назад
VSCode
@Russian_Morty
@Russian_Morty 3 месяца назад
@@PurpleSchool Можешь ещё дать программу похожая на фотошоп, у меня на ноутбуке нет видеокарты из-за этого фотошоп не работает же пожалуйста, заранее спасибо
@epileptickeed
@epileptickeed 8 месяцев назад
А можно пожалуйста код функции collapse
@ivankprod
@ivankprod 7 месяцев назад
document.querySelector(".collapse").classList.toggle("open");
@cubedesigne
@cubedesigne 10 месяцев назад
Что за тема для vs code??
@PurpleSchool
@PurpleSchool 10 месяцев назад
Bearded Theme Vivid Purple
@legendofpain1x915
@legendofpain1x915 11 месяцев назад
Я вообще не использую класс, просто через js maxHeight + scrollheight использую Если задать паддинги то даже с height 0 не скрыть(
@legendofpain1x915
@legendofpain1x915 3 месяца назад
а ты не используй паддинги, сделай через маржин
@bubblesort6368
@bubblesort6368 2 месяца назад
Я правильно понял, что под эффективностью имелось все что угодно, но не перформанс?)
@user-yt1km9jm4b
@user-yt1km9jm4b 2 месяца назад
Это что за редактор кода такой красивый?
@PurpleSchool
@PurpleSchool 2 месяца назад
Visual Studio Code
@user-yt1km9jm4b
@user-yt1km9jm4b 2 месяца назад
@@PurpleSchool у меня тоже он, но почему то вообще не такой красивый 😭
@PurpleSchool
@PurpleSchool 2 месяца назад
@@user-yt1km9jm4b там Bearded Theme Vivid Purple
@MrAlexrunov
@MrAlexrunov 10 месяцев назад
Почему она сворачивала обратно ?
@MakishimuDono
@MakishimuDono 10 месяцев назад
Думаю, потому что при клике класс навешивается и убирается туда/сюда.
@artempronin
@artempronin 10 месяцев назад
а можно просто через slideToggle()
@PurpleSchool
@PurpleSchool 10 месяцев назад
Ну не, в 2023-м году использовать jQuery на проектах достаточно странно, особенно при том, что такую анимацию можно сделал без JS вообще.
@JuniorGrigory
@JuniorGrigory 11 месяцев назад
у меня анимация проходит, но текст остается почему-то
@german_ny
@german_ny 11 месяцев назад
Overflow: hidden
@TheAzovStar
@TheAzovStar 11 месяцев назад
Ваш основной редактор Vim или VS Code?
@PurpleSchool
@PurpleSchool 11 месяцев назад
Основной NeoVim, VSCode для демо. Вот моя сборка: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-4PzSNN45tcA.html
@akellathewolf933
@akellathewolf933 10 месяцев назад
Народ помогите новичку!!! Как сделать так, чтобы сама кнопка коллапсировала принажать на себя и показывала скрытый контент одновременно ? Мучаюсь 3 сутки
@user-rd6sg5rj5z
@user-rd6sg5rj5z 8 месяцев назад
А что за IDE?
@PurpleSchool
@PurpleSchool 8 месяцев назад
VSCode
@user-rd6sg5rj5z
@user-rd6sg5rj5z 8 месяцев назад
@@PurpleSchool, спасибо за ответ! А что за тема, если не секрет?
@PurpleSchool
@PurpleSchool 8 месяцев назад
Bearded Theme Vivid Purple
@good666fella
@good666fella 10 месяцев назад
для слабаков?
@luky6225
@luky6225 11 месяцев назад
через анимации можно было
@isi.007
@isi.007 6 месяцев назад
Боже, пробелы 😢😢😢😢😢😢
@Black1991Star
@Black1991Star 10 месяцев назад
Не надо так делать. А потом заказчик попросит amp версию сайта и ваши инлайновые стили вам боком вылезут. Вы читали про оптимизацию и колическтво вложеностей, каждая добавленная оббертка это как ещё одна упаковка для конфеты... гугл не рекомендует. Это плохой совет... аниммировать данный эфект необходимо через свойство анимации scale (0) -> scale (1) а потом ещё можно добавить will-change:transform; Вообщем это плохой совет!
@PurpleSchool
@PurpleSchool 10 месяцев назад
In-line стили сделаны для быстрой демонстрации, так как вы можете его положить в класс. Что касается обёрток, то вы совершенно не правы, дополнительный div никак не повлияет на SEO и производительность. Да, глубину DOM дерева надо сокращать, но ничего критичного в 1-м DIV нет.
@kai.hexendorf
@kai.hexendorf 4 месяца назад
Расчленёнка объекта, магия и нарушение DRY. Всё это следствие низкой ООП-культуры.
@PurpleSchool
@PurpleSchool 4 месяца назад
Предлагаете ООП в CSS?
@turok9661
@turok9661 10 месяцев назад
Смысл делать через высоту и прочие вещи, что тригерят рефлоу🤡 Анимации надо делать через трансформ
@PurpleSchool
@PurpleSchool 10 месяцев назад
Так у тебя под ним будет контент, который должен уезжать внизу при анимации, тебе никакой transform не поможет, так как там должны происходить рефлоу.
@Ginzilla95
@Ginzilla95 10 месяцев назад
Как же бесят щелчки. Не понимаю людей, которым это нравится
@og8946
@og8946 10 месяцев назад
Когда кто то щелкает кайфа никакого нет, а когда сам щелкаешь это очень прикольно
@Ginzilla95
@Ginzilla95 10 месяцев назад
@@og8946 я так-то щёлкал отдал даром. Благо халяву любят
@denisborisov4749
@denisborisov4749 10 месяцев назад
потратил 15 мин на тебя. Дизлайк. У меня не получилось. Ошибка onlick cpllapse notdefined.
@PurpleSchool
@PurpleSchool 10 месяцев назад
Так в js нужно определить функцию, которая добавляет класс
@denisborisov4749
@denisborisov4749 10 месяцев назад
@@PurpleSchool тогда скажи в видео что еще и js нужен. Почему молчишь?
@_oxios_
@_oxios_ 10 месяцев назад
@@denisborisov4749 По клику на кнопку мы добавляем класс "open" ни о чем не говорит!?
@user-ql5zq5zc9y
@user-ql5zq5zc9y 9 месяцев назад
а что это за приложение которое ты используешь
@PurpleSchool
@PurpleSchool 9 месяцев назад
VSCode, а браузер Arc
@MaximKacc
@MaximKacc 10 месяцев назад
jquery в помощь, .show/hide(slow/medium/fast/число в ms)
@PurpleSchool
@PurpleSchool 10 месяцев назад
Ну не надо тащить jquery, когда всё можно сделать без лишнего JS. Да и в целом в 2023 его странно использовать.
@kephec6233
@kephec6233 10 месяцев назад
display: block|none не? Надо херню выдумать что бы ролик записать?
@PurpleSchool
@PurpleSchool 10 месяцев назад
И как же вы это анимируете?
@smith-dev
@smith-dev 9 месяцев назад
​@@PurpleSchoolжесть сколько отсталых в комментариях, как у вас терпения хватает
@vorobei-_-2075
@vorobei-_-2075 10 месяцев назад
.collapse p{ height:0; transition:height 200ms ease-in-out; overflow:hidden; } .collapse .open { height:100%!important; } TEXT Ну если без гридов то как-то так
@gift.albooms
@gift.albooms 10 месяцев назад
Недавно обнаружил, что для большей производительности ОБЯЗАТЕЛЬНО нужно избегать анимирования left, right, top, bottom, width, height и т.д. Это вызывает перерисовку всей страницы, так как меняются размеры. В идеале применять transition на transform (translate, rotation, scale и т.д.). В данном случае это решение подходящее, но в более загруженных анимациями проектах, где элементы сильно перемещаются стоит сразу делать через transform. Я потратил целый день, чтобы оптимизировать проект, который оказывается на мобилках стал жёстко тупить и даже крашиться вкладка из-за неоптимальных transition. Не повторяйте моих ошибок 😅 Изменения transform делаются не затрагивая разметку, поэтому работает ооочень плавно и не тормозит. (Загуглите примеры, смотрите с мобилки). Пример на SCSS: //медленно .main{ height: 100px; transition: height 1s ease-in-out; &.active{ height: 200px; } } //БЫСТРО .main{ height: 100px; transform: scale(1,1); transition: transform 1s ease-in-out; &.active{ transform: scale(1, 2); } }
@pershinvitalii
@pershinvitalii 3 месяца назад
Это абсолютно разные анимации для разных целей
@gift.albooms
@gift.albooms 3 месяца назад
@@pershinvitalii многие применяют медленный вариант там, где важна производительность.
@pershinvitalii
@pershinvitalii 3 месяца назад
@@gift.alboomsТы походу не понимаешь разницы
@gift.albooms
@gift.albooms 3 месяца назад
@@pershinvitalii между изменением реальных размеров элемента в DOM и его визуальным отображением разницу понимаю. Если есть более конкретное замечание - готов почитать в ответе
@pershinvitalii
@pershinvitalii 3 месяца назад
@@gift.alboomsЯ уже сказал в первом комменте, это две абсолютно разные вещи. Трансформация не меняет физического размера, а значит её применяют только там где размер не играет роли, например во всплывающей подсказке. Но если у тебя спойлер на пол страницы, трансформация просто сделает его невидимым и у тебя будет пол страницы пустоты.
Далее
Final increíble 😱
00:39
Просмотров 15 млн
The delivery rescued them
00:52
Просмотров 4,7 млн
CSS3 #19 Анимации (Animations)
9:11
Просмотров 14 тыс.
CSS Animation Effects | Html CSS Only
9:48
Просмотров 532 тыс.