Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Добавляем анимацию появления шапки #2

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

galina132
Copy link
Contributor

@galina132 galina132 commented Nov 17, 2024

@keksobot keksobot changed the title Добавляет имя наставника Добавляем анимацию появления шапки Nov 17, 2024
keksobot pushed a commit that referenced this pull request Nov 18, 2024
@keksobot
Copy link
Contributor

♻️ Я собрал ваш пулреквест. Посмотреть можно здесь.

Copy link

@sfi0zy sfi0zy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✏️ Первичная проверка.

Обозначения:

🔴 - Нужно обязательно исправить.
☝️ - Нужно принять к сведению, обращать внимание в перспективе.
💡 - Дополнительные мысли для саморазвития (за рамками учебных задач).
🔷 - Важное сообщение.

Чеклист:

  • Логотип плавно появляется слева.
  • Футер плавно появляется снизу.
  • Шапка появляется из прозрачности без смещения.
  • Рисуется полоса под первым (активным) пунктом меню в шапке.
  • Кружочек иконки социальных сетей увеличивается, как бы пружинит, и потом уменьшается. Размер самой иконки с точками не меняется. Сохранена работоспособность анимаций кнопки при наведении мыши (из первого задания).

Комментарии:

🔴 - Отсутствует анимация появления футера. Похоже, что вы перепутали футер (белая полоса снизу) и текст с побуквенной анимацией. В прошлой проверке я уже упоминал, что побуквенные анимации - это отдельная вещь, пока мы эти элементы не трогаем.

🔴 - Отсутствует появление шапки из прозрачности.

🔴 - Отсутствует пружинящий эффект у кнопки соц сетей при ее появлении. Кружок должен увеличиваться, иконка - нет.

🔷 - Предыдущее задание было принято формально, с напутствием обращать большее внимание на детали. Здесь слишком многое осталось без внимания. Нужно доделать. На текущий момент важно осознать две вещи: первая - сложные задачи состоят из комбинаций простых. Пропуская движения в простых задачах вы не накапливаете опыт их внедрения в страницы, и потом будет сложнее их комбинировать. Это накапливается как снежный ком. Вторая - логика работы интерфейса важна. Сохранение логики дизайна, аккуратный перенос ее в код, - это существенная часть нашей работы. И умение разделить сложное движение на ряд простых, проанализировать его, разобраться, что там с чем связано - это то, что нужно в себе развивать параллельно умению писать код. И здесь все так же. Сложные сцены включают в себя больше движений, больше логический связей. Разбирая по кирпичикам простые штуки вы делаете задел на будущее, когда нужно будет разбирать сложные дизайнерские концепты.


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

Итог:

❌ - Выполнены не все требования ТЗ. Необходима доработка.

transform: translate(0, 0);
opacity: 1;
transition: all 6s;
transition-timing-function:cubic-bezier(0.17,0.67,0,1.05)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

☝️ - Будьте осторожны с такими значениями больше 1 или меньше 0 в кривых Безье, в ситуациях, когда это не задумано изначально как движение туда-сюда. Эти значения могут создать лишнюю точку перегиба кривой, и из-за нее может появиться плавающий баг, когда в конце движения элемент прыгает немного назад. Или в начале будет двигаться не туда. Такое легко пропустить при тестировании, это может быть артефакт в 1px, но он потом где-нибудь в продакшене всплывет и будет резать глаз.

@@ -31,10 +31,20 @@
position: relative;
flex: none;
top: -0.5rem;
left: -120px;
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

☝️ - Посмотрите внимательно на видео. Насколько сильно этот логотип изначально смещен? Примерно? На ширину одной буквы? Сейчас на стандартном fullhd мониторе он вылетает из-за края экрана. 120px тут - явный перебор. Здесь проблему легко исправить, она заключена в одном числе.

&--loaded {
transform: scale(1);
transition: all 6s;
transition-timing-function:cubic-bezier(0.17,0.67,0,1.05)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

☝️ - Для решения задачи анимирования "туда-сюда" можно использовать кривую Безье, которая немного выходит за пределы квадрата 1 на 1. Современные браузеры уже давно умеют такое делать. Как пример - cubic-bezier.com/#.6,-0.25,.34,1.51.

☝️ - А еще у нас есть функция linear(), которая медленно, но верно, начинает поддерживаться всеми основными браузерами. Она открывает еще более широкий спектр возможностей.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants