Контакты

Достижения

Все достижения (5)

Наибольший вклад в теги

Все теги (39)

Лучшие ответы пользователя

Все ответы (73)
  • Есть ли курс по анимации для начинающего?

    Анимация в JavaScript это набор техник по изменению CSS элементов, не более того. Основное это animation, transition, и transform.

    Поэтому не ищите гайды по анимации, а найдите документации по этим свойствам CSS, и когда вы изучите их, станет понятно как сделаю любую нужную вам анимацию.

    Это минимум.

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

    Для этого нужно разбираться со вкладкой Performance в Chrome DevTools. Профайлите свои анимации, причем, делайте их похардовее, чтобы браузер офигел и подвисал, и смотрите почему он лагает. Чтобы понять причины тормозов придется копать в дерево DOM, как рисуются элементы, как они аффектятся при изменении DOM, и прочее. Так и поймете как делаются анимации, что хорошо и что плохо для браузера.

    Всё описанное выше есть в документациях, можно найти при необходимости, например:

    https://developers.google.com/web/fundamentals/per... (читать весь раздел)
    https://developer.mozilla.org/en-US/docs/Web/CSS/a...

    Вообще информации нужно море, ссылок будет намного больше.

    Собственно по вопросу – я не искал, но не уверен что найдется нормальный курс по анимациям, разве что поверхностные. Если хотите реально научиться работать с анимациями, то практика, вероятно, лучший вариант.
    Ответ написан
  • Зачем нужны интерфейсы в Angular?

    Дело не в Angular, а в том что такое интерфейс. Я расскажу со стороны моей практики.

    Интерфейс это контракт взаимодействия между техническими сущностями (классы, объекты, функции, и так далее). Если мы создаем 10 объектов, которые соблюдают (реализуют) интерфейс, значит их можно подменять друг другом (только не нужно нарушать LSP, это принцип SOLID).

    Так вот, отсюда есть мощные бонусы:

    Первое, если создавать интерфейсы, то сущности начинают зависеть не друг от друга, а от интерфейса. Это значит что вместо зависимости одного класса от другого конкретного класса, можно использовать зависимость от интерфейса и любой класс реализующий интерфейс. Таким образом, если понадобится, можно спокойно заменить один класс на другой, если они реализуют один и тот же интерфейс. Это называется принцип инверсии зависимостей (один из принципов SOLID).

    Выходит что сущности не завязываются друг на друга, и их можно разрабатывать независимо друг от друга, а в разработке чем меньше связей между классами/объектами, тем лучше. Если потом понадобится изменить код, поменять класс, будет значительно меньше проблем. Меньше, потому что если есть цепочка зависимостей, то нельзя изменить что-то одно, потому что другое сломается, и придется менять всю цепочку. Убирая прямые зависимости изменение кода становится проще.

    Второе, это стабильность, лично для меня. Я работаю на TypeScript, и там можно описать интерфейс, сигнатуру функции, и ожидать на входе любые данные, которые его реализуют, и вообще пофигу откуда они, но пока они реализуют интерфейс, всё будет работать стабильно.

    Третье, это понимание с чем ты работаешь. Когда есть интерфейс, ты всегда понимаешь что можно использовать у объекта, что там есть, и какого это типа. Просто очень удобно.

    Ну и самое главное, лично для меня, это то, что мы инженеры, т.е. мы должны проектировать систему, а потом реализовывать, и интерфейс это один из наших "чертежей".

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

    Поэтому Ангуляр собственно не причем, это просто фреймворк, а принципы проектирования там те же самые, как и в любом другом приложении.
    Ответ написан
  • Чему, как и где учиться веб дизайну?

    В веб-дизайне нужно понимать техническую часть, как люди (в том числе и техническая команда, и пользователи) потом будут работать с этими дизайнами, и при этом нужно "чувствовать" чтобы сделать хороший веб-дизайн.

    Рекомендую начать с изучения, как работают веб-приложения, чтобы понимать почему, например, красивая картинка как дизайн приложения не сойдет, и какие это сложности понесет в разработке.

    Второе, нужно аналитическое мышление. Это не просто картинки рисовать, но нужно понимать как это будет решать задачи бизнеса, и как этим будут пользоваться люди. Поэтому нужно будет читать документы, понимать требования к продукту, которые потом нужно будет "переводить" в дизайн приложения.

    Третье, разобраться как устроены сайты (структура, шапка, контент, футер, меню), и посмотреть на разные UI Kit'ы, чтобы понять из чего обычно строятся все интерфейсы (плюс-минус, если без наворотов).

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

    Ну и практика-практика-практика, больше никак.
    С опытом придет чувство что хорошо, а что не очень. Объяснить это сложно :)

    По инструментам – Zeplin, или вектор, но могу ошибаться, потому что не дизайнер, я просто знаю что крутые дизайнеры работают с этим. Если сложно (вектор это непросто для новичка), можно начать с фотошопа.
    Ответ написан
  • Как сделать такую полосу прокрутки на сайте?

    Подарите дизайнеру сервый карандаш и попросить нарисовать цветную картину :)
    Это к тому, дизайнер должен понимать принципы веб и такие вещи не придумывать, чтобы потом разработчики не страдали.

    По теме – есть инверсия цветов, если цвета действительно черный и белый, плюс возможность управления отображением скроллбара. Может быть если совместить это, получится найти решение.

    Есть второй вариант, это JavaScript, т.е. программировать цвет элементов, в том числе этого "перехода" скроллбара. Сложное решение чтобы описать словами, но если коротко, то писать свой скроллбар, этот ползунок делать как два элемента одинакового или разного цвета, и в зависимости от прокрутки менять их размер и цвет, получится эффект "перехода".

    Вариант №3, опять же JavaScript, это реализация через canvas.

    Вариант №4, и он самый лучший, это согласовать изменения в дизайне.
    Ответ написан
  • Как сохранить созданный html элемент на странице?

    Чтобы создать заново, сначала нужно сохранить это.

    Вариантов несколько:
    • Сервер (строку передаем через интернет, сохраняем в базе, и при перезагрузке страницы скачиваем данные обратно и выводим на странице)
    • Локальное хранилище в браузере, смотрите Local Storage (в 99% случаев его достаточно)


    Дальше когда есть возможность сохранить данные и получить их обратно, просто выводим разметку на странице, вроде `el.innerHTML = <строка_с_разметкой_полученная_из_хранилища>`
    Ответ написан

Лучшие вопросы пользователя

Все вопросы (35)