Будущее CSS-анимаций - scroll-timeline, animation-timeline и animation-range, JS больше не нужен!

Поделиться
HTML-код
  • Опубликовано: 27 ноя 2024

Комментарии • 49

  • @AleksanderLamkov
    @AleksanderLamkov  8 месяцев назад +3

    📌 Друзья, в телеграмме у нас есть канал и отдельный чат, где вы можете задать вопрос по фронтенд-разработке и вам постараются помочь:
    💬 Чат: t.me/friendlyFrontendChat
    ℹ Основной канал: t.me/friendlyFrontend
    Если вам это интересно, присоединяйтесь, задавайте вопросы и помогайте другим 🙂

  • @michaelkamko
    @michaelkamko 8 месяцев назад +1

    Отдельное спасибо за сайт с примерами. Сэкономит кучу времени.

  • @ЕвгенийЖилкевич-т9ч
    @ЕвгенийЖилкевич-т9ч 8 месяцев назад +2

    Саша, ты как всегда выкатываешь крутую и полезную информацию!!! Самый мой любимый канал!😍

  • @michaelkamko
    @michaelkamko 8 месяцев назад +7

    Скролл анимацию на чистом css я ждал много лет! Наконец-то вместо тормозных js костылей с кучей глюков есть нормальное нативное средства, которого так не хватало! Теперь кайфую, как и многие дизайнеры/верстальшики.

  • @ПавелМинич
    @ПавелМинич 8 месяцев назад +2

    Благодарочка, вещай ещё!

  • @user-hw9cs6te5y
    @user-hw9cs6te5y 5 месяцев назад +1

    Благодарю. Мне как раз очень нужна была анимация с плавным проявлением картинок. Очень интересно и полезно

  • @michaelkamko
    @michaelkamko 8 месяцев назад +1

    Спасибо за очередной полезнейший видос с прекрасной подачей инфы!

  • @Kotovar
    @Kotovar 8 месяцев назад +1

    Спасибо) Попробовал все примеры, выглядит потрясающе :)

  • @MicroDobb
    @MicroDobb 8 месяцев назад +1

    спасибо тебе, добрый человек!

  • @Anatoli-bq1pe
    @Anatoli-bq1pe 5 месяцев назад +1

    Благодарю за классное видео и ценную информацию!

  • @ВладиславМарюхин-э4с
    @ВладиславМарюхин-э4с 8 месяцев назад +1

    Спасибо большое за познавательный контент 😊

  • @kiskashrek263
    @kiskashrek263 8 месяцев назад +1

    Супер, спасибо за видео

  • @NIkFreedomForce
    @NIkFreedomForce 8 месяцев назад +1

    От души!

  • @ajoq
    @ajoq 3 месяца назад +1

    Топ-контент! Спасибо

  • @biscvie
    @biscvie 8 месяцев назад +1

    Спасибо!

  • @mruz434
    @mruz434 Месяц назад +1

    Спасибо большое топ видео 🔥, по моему самый лучший канал в Ютюбе по фронтенду 💯💯

  • @efremtv
    @efremtv 5 месяцев назад +1

    Супер!

  • @виртуоз_ру
    @виртуоз_ру 8 месяцев назад +1

    Лучший. Благодарю тебя за интересную информацию 👍

  • @ДмитрийДимиев-э2х
    @ДмитрийДимиев-э2х 8 месяцев назад +1

    получилось! Спасибо!

  • @NeoCoding
    @NeoCoding 8 месяцев назад +1

    ох благодарю. мож пригодится

  • @barmalejZ
    @barmalejZ 7 месяцев назад

    Будущее наступает)

  • @Atractiondj
    @Atractiondj 8 месяцев назад

    При моем опыте работы с этим я заметил пару косяков которые мещают этому стать прям мастхэвом.
    1) Для замены анимаций в медиа запросах, необходимо переписать анимацию полностью не только скажем с animation: animate-in linear forwards; на animation: animate-left-in linear forwards. Придется писать все
    .animate {
    animation: animate-left-in linear forwards;
    animation-timeline: view();
    animation-range: entry, exit;
    }
    2) Нет поддержки вложенности. Я не могу прописать
    .animate {
    animation: animate-left-in linear forwards;
    animation-timeline: view();
    animation-range: entry, exit;
    &:nth-child(2) {animation-delay: .3s;}
    &:nth-child(3) {animation-delay: .6s;}
    &:nth-child(4) {animation-delay: .9s;}
    &:nth-child(5) {animation-delay: 1.2s;}
    &:nth-child(6) {animation-delay: 1.5s;}
    }
    Придется писать
    .animate {
    animation: animate-left-in linear forwards;
    animation-timeline: view();
    animation-range: entry, exit;
    }

    .animate:nth-child(2) {animation-delay: .3s;}
    .animate:nth-child(3) {animation-delay: .6s;}
    .animate:nth-child(4) {animation-delay: .9s;}
    .animate:nth-child(5) {animation-delay: 1.2s;}
    .animate:nth-child(6) {animation-delay: 1.5s;}
    }
    Так же функция view не работает как observer в полной мере, что бы по примеру @container я мог обьявить секцию как тригер для начала анимаций всех карточек а не пока конкретная карточка попадет в viewport.
    Вывод, для некоторых анимаций это стало проще, но для создания библиотеки это не подходит (только малая часть функций)

    • @AleksanderLamkov
      @AleksanderLamkov  8 месяцев назад

      Согласен. Годные примеры, спасибо!
      Но хорошо, что технология в принципе развивается и хотя бы часть задач по нетребовательным анимациям может взять на себя 🙂

    • @Atractiondj
      @Atractiondj 8 месяцев назад

      @@AleksanderLamkov Это да, дождемся что бы этого хотя бы поддержку завязли, скорее всего после презентации эпла летом. Обычно так они вводят фишки interop согласно графикам прошлых лет, у сафари резко идет совместимость вверх июнь, июль у Лисы с апреля... может скоро будет хотя бы это

    • @Atractiondj
      @Atractiondj 8 месяцев назад

      @@AleksanderLamkov про последнее правка. Сейчас для одной функций перечитывал документацию, оказывается добавили такую штуку timeline-scope
      которая позволяет как раз таки при обнаружений родительского контейнера запускать анимацию для дочерних элементов

  • @Sergey_Klimov
    @Sergey_Klimov 8 месяцев назад +2

    Я всю голову сломал как в реакте сделать такую шапку с помощью interseption observer так, чтобы повторный рендеринг не вызывать(((((

  • @Atractiondj
    @Atractiondj 8 месяцев назад +1

    Либо в обновлениях в июне либо в декабре будет 92% поддержка

  • @draftermyself
    @draftermyself 8 месяцев назад

    Пока не GSAP конечно, но и проц мой не взорвался как при переходе на многие сайты с WOW-эффектом)

  • @Ch-ce7ym
    @Ch-ce7ym 8 месяцев назад

    отличные новости, но будем мы все это юзать через 2-4 года

  • @Sergey_Klimov
    @Sergey_Klimov 8 месяцев назад

    Ну, вот кстати есть определенные лаги с такой шапкой. Я посмотрел на официальном сайте как там реализована подобная шапка и единственное отличие - position: fixed вместо sticky.
    Я отслеживаю такую проблему, когда доскролил до середины анимации и при движении мышью шапка как-то подергивается

    • @AleksanderLamkov
      @AleksanderLamkov  8 месяцев назад +1

      Хм. Наверняка временные особенности работы новой технологии. Ещё обкатают и пофиксят рано или поздно.

  • @VulpesDust
    @VulpesDust 13 дней назад

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

    • @AleksanderLamkov
      @AleksanderLamkov  13 дней назад

      Это как?)

    • @VulpesDust
      @VulpesDust 13 дней назад

      ​ @AleksanderLamkov Хочу параллакс на фоне чтобы относительно одного пикселя смещался фон на определённое значение.
      У меня конечно получилось через кастыль без js, но это будет работать только на высоту в 1000 экранов, больше не ставил, потому что незачем, а без ограничения на разных страницах будет работать по разному.
      Позже добавлю этот фон на свой сайт, напишу кратко статью и пришлю сюда.

  • @hyperpocket.
    @hyperpocket. 28 дней назад

    в последнем пример нужно добавить html {scroll-timeline: --fade-in-image block;} ? animation-timeline: scroll(); не вижу

    • @AleksanderLamkov
      @AleksanderLamkov  28 дней назад +1

      Не обязательно. Будет работать и без этого. Но для наглядности можно и прописать.

  • @AlexAlex-bp9il
    @AlexAlex-bp9il 8 месяцев назад

    Читал где-то про такое. Очень круто конечно, но когда ?? Вот это вопрос -) Всё улучшают, оптимизируют...

    • @AleksanderLamkov
      @AleksanderLamkov  8 месяцев назад

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

  • @AntonioMick
    @AntonioMick 8 месяцев назад

    Поддержка на IOS полностью отсутствует :(
    Можно пожалуйста видео как работать со scroll-timeline.js ( он там каким-то волшебным образом проверяет и работает )

    • @AleksanderLamkov
      @AleksanderLamkov  8 месяцев назад

      Взял на заметку, спасибо за идею!

  • @Alexandr_16kz_22rus
    @Alexandr_16kz_22rus 8 месяцев назад

    Спасибо за контент! Но можно как-то сделать, чтобы элементы появлялись не постепенно, а сразу при скролле (ну т.е. если элемент начинает появляться и скролл остановить, то и анимация остановится, а я про то, чтобы анимация продолжилась)
    И также как сделать, чтобы при скролле вверх эти элементы не уходили снова?

    • @AleksanderLamkov
      @AleksanderLamkov  8 месяцев назад +1

      Привет! Кажется, что так сделать нельзя 😕 Возможно в будущем какое-то свойство для этого добавят, а пока что в черновиках CSS обсуждение этого вопроса застряло на этом: github.com/w3c/csswg-drafts/issues/7478

    • @fl1ckyyy155
      @fl1ckyyy155 5 месяцев назад +2

      Можешь воспользоваться библиотекой animate.css и wow.js

  • @naterivarbeatz5937
    @naterivarbeatz5937 8 месяцев назад

    Он во всех браузерах поддерживается? Просто я видел он гугл и яндекс вроде как не подерживает

    • @AleksanderLamkov
      @AleksanderLamkov  8 месяцев назад

      Пока только в сафари не работает. В остальных современных браузерах работает. К лету-осени этого года вероятно будет везде.

  • @alman_harbi
    @alman_harbi 8 месяцев назад +1

    CSS скрол анимации??? 🤯🤯🤯

  • @biLLie_wiLLie
    @biLLie_wiLLie 8 месяцев назад +1

    Safari боль

  • @slamedesign
    @slamedesign 28 дней назад +2

    Слишком дорогой контент для ютуба....

  • @dmitrypoluhin2955
    @dmitrypoluhin2955 8 месяцев назад

    Спасибо Вам огромное!