• Почему я не могу получить значение инпута?

    Athanor
    @Athanor
    Лайк + Решение: не жмись, нажми
    Удалось починить вашу песочницу. Она не работала, потому что js начинал выполняться до окончания загрузки html.

    Снизу добавил кнопку, которая выводит содержимое инпута в консоль, все работает, если в инпуте есть какое-то значение, оно выводится.
    Ответ написан
    1 комментарий
  • Как работать в цикле с большими числами?

    Athanor
    @Athanor
    Лайк + Решение: не жмись, нажми
    Для работы с большими числами можно использовать BigInt, добавленный совсем недавно.
    работать будет это примерно так:
    let index = 1000000000000000000000n;
    index += 1n;
    console.log(index);


    Но для лучшей поддержки браузерами, конечно пока что рекомендуется делать это через полифил
    Ответ написан
    2 комментария
  • Не отображается сетка в figma почему?

    Athanor
    @Athanor
    Лайк + Решение: не жмись, нажми
    А настройки самой сетки проверяли? Похоже дело в ней самой, можно скрин настроек в студию?
    Ответ написан
  • Как сделать контур буквы кривой?

    Athanor
    @Athanor
    Лайк + Решение: не жмись, нажми
    1. Переводим текст в кривые

    2. Выбираем эффект (их кстати здесь много разных):
    5e2984d795c97338582482.jpeg

    3. Настраиваем параметры:
    5e2984f790aee786865982.jpeg
    Ответ написан
    Комментировать
  • Как использовать скрипт один раз, а не вставлять его каждый раз?

    Athanor
    @Athanor
    Лайк + Решение: не жмись, нажми
    Вынесите его в отдельную функцию и передавайте нужные параметры, которые могут изменяться от вызова к вызову в качестве аргументов.

    function getJsonAndUpdateTable(jsonPath) {
      $.getJSON(jsonPath, function (data) {
          $(data).each(function(index, item) {
          $('#table').append(
              '<tr><td class="col1">'+ item.title01 +'</td><td class="col2">' + item.shopcode + '</td><td> <a href="' + item.link + '">' + item.title + '</a></td><td class="col3">' + item.cost + '</td></tr>'
              );
          });
      });
    }

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

    Athanor
    @Athanor
    Лайк + Решение: не жмись, нажми
    Добрый день! Для планирования публикаций в Instagram подходит приложение Preview.
    Есть бесплатный режим, в котором вы можете одновременно создавать 1 проект. Добавлять можно как фото, так и видео. Также есть функция добавления эффектов.

    Десктопная версия https://preview.app/.
    Скачать приложение на Android: https://play.google.com/store/apps/details?id=com....
    Скачать на IOS: https://apps.apple.com/ru/app/preview-planner-for-...
    Ответ написан
    Комментировать
  • Оптимизация vuex?

    Athanor
    @Athanor
    Лайк + Решение: не жмись, нажми
    1. Изменение положения элемента через абсолютное позиционирование работает медленней чем через transform. Попробуйте переделать left/top на transform: translate.
    2. Есть в css волшебное свойство will-change, попробуйте подключить его.
    3. Вам в ответах уже советовали попробовать использовать throttle, это точно стоит сделать, наглядно о том, как это работает и в чем разница с debounce — тут
    Ответ написан
    9 комментариев
  • Как научиться так тонировать изображение?

    Athanor
    @Athanor
    Лайк + Решение: не жмись, нажми
    Раз уж начали про разные способы и эффекты, есть ещё один интересный эффект, тоже просто делается — gradient map. Работает за счет подмены светов и теней на заданные цвета вот два примера:

    5e29618950beb313564854.jpeg

    1) Просто добавляем adjustment layer:
    5e2961f3ad786841946989.jpeg

    2) Задаём градиент:
    5e2962121fbf5165164353.jpeg

    3) Если хочется понастраивать, то используем кривые:
    5e2962395ce0d851567491.jpeg
    Ответ написан
    2 комментария
  • Куда двигаться на новом рабочем месте?

    Athanor
    @Athanor
    Лайк + Решение: не жмись, нажми
    Судя по вашему тексту вы устроились в непрофильную компанию, да, дизайнер в такой компании всегда сам по себе. Но это плохо только с одной стороны, с другой — это открывает для вас возможности проявить инициативу. Советую вам не ждать задач, а самому их себе придумать, если руководитель этим не озаботился. Это покажет вас с наилучшей стороны и вы докажете свою эффективность.

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

    Если вы проделаете подобную работу и не почувствуете, что её оценили, то можете смело со спокойной душой бежать куда подальше.

    P.S. вы писали вопрос в конце года, возможно как раз поэтому не было работы — все уже отдыхают.
    Ответ написан
    Комментировать
  • В чем идея Mobile First подхода?

    Athanor
    @Athanor
    Лайк + Решение: не жмись, нажми
    1. Mobile first подразумевает определенный процесс работы ближе к продуктовой разработке. Здесь важно не сделать все экраны сразу, а постепенно версия за версией выкатывать функционал. На мобильных экранах функционал ограничен устройством, а на настольных экранах он шире.

    Представьте что будет, если начать с настольных экранов: вы проектируете интерфейс, внедряя туда весь желаемый функционал, выкатываетесь, а через месяц понимаете, что это не реализуемо на мобильных. Получается, что ваши дизайн решения с самого начала начинают «накапливать ошибку» всё это позже вскрывается и вы вносите изменения во ВСЕ экраны и плюсом это ещё нужно переделать на этапе разработки, что очень дорого. Если же использовать mobile first, то вы усложняете интерфейс эволюционно, добавляя фичу за фичей от простого — к сложному, и тогда, в случае ошибки, откатиться придется всего на шаг назад.

    Если подытожить, то можно и так и так, действительно, особенно если вы работаете с заказной разработкой, когда надо просто «задизайнить» и отдать все экраны сразу и забыть. Но в условиях, продуктовой разработки, когда нужно экономить ресурсы, mobile first выглядит эффективней.

    2. Видимо ещё дело в том, что мобильный трафик несколько лет назад превысил десктопный.
    Ответ написан
    Комментировать
  • Как работать в режиме энергосбережения?

    Athanor
    @Athanor
    Лайк + Решение: не жмись, нажми
    Есть ряд методик, помогающих справляться с нагрузкой на больших дистанциях. Одна из популярных - работа "помидорами". Суть её в том, что в течение относительно небольшого промежутка времени (25 минут) идет работа только над одной задачей, без отвлечения на соц. сети и прочие раздражители. За периодом работы следует пятиминутный отдых, за который как раз можно успеть проверить нотификации в телефоне и ответить на сообщения.
    Эта и другие полезные техники есть в книге Дорофеева "Джедайские техники". Автор там подбирает значительный арсенал, как экономить силы и время.
    Ещё на эту тему есть книга "Getting Things Done" от Дэвида Аллена, тоже даёт понимание, как "менеджерить" и справляться с собственными задачами, а не закапываться в них. 
    Ответ написан
    Комментировать
  • Почему не обновляются динамические страницы?

    Athanor
    @Athanor
    Лайк + Решение: не жмись, нажми
    Кто выкидывает ошибку 404? vue-router или ваш сервер? Если второе, то вам нужно либо включить hash-mode в вашем vue-router, либо сделать так, чтоб сервер на все запросы, кроме api, отдавал index.html
    Ответ написан
  • Как развивать навыки веб-дизайнеру?

    Athanor
    @Athanor
    Лайк + Решение: не жмись, нажми
    Рецепт от Athanor:

    0. Сначала разработайте хотябы приблизительный план и сформулируйте свою цель — двигаясь куда-либо важно понимать куда. Ну, например, хотябы поймите в какой области вам было бы интересно работать веб тоже вебу рознь. Когда у вас будет план, вы сможете понять какие конкретно навыки нужно подтянуть.
    1. Формируйте базу знаний. Конечно же, необходимо получить теоретические знания о базовых принципах проектирования. Здесь можно было бы насоветовать кучу книг но это всё классика и легко гуглится, посоветую начать с книг «Типографика и верстка» и «Пользовательский интерфейс» А. Горбунова — это прямо база-база, мы даём это читать всем нашим новичкам, по цене-качеству это намного полезней каких-нибудь курсов на скилбоксе, купить можно на bureau.ru. Ещё у них на сайте есть интересный раздел советов. Можно начать с этого и обращать внимание на книги которые советует Артём Горбунов.
    2. Формируйте «насмотренность». Смотрите чужие проекты на behance, декомпозируйте их и разбирайте почему они сделаны именно так, а не иначе, просто листать и восхищасться — мало.
    3. Всегда что-то делайте. Мало просто почитать, пройти онлайн курс и посмотреть все лекции от design prosmotr, они могут только дать мотивационный пинок, но основная учёба и прокачка происходит во время самой работы. Придумайте себе фейковые проекты, пробуйте редизайнить существующие сервисы, ну например «редизайн сайта Аэрофлота», что угодно, или придумайте себе челендж, например каждый день делать по 1 страничке или рисовать в день по иллюстрации (тут можно погуглить, вот например https://www.dailyui.co/).
    !Важно. Как можно раньше нужно переходить к реальным проектам, даже если сложно пока найти проекты за деньги, всегда можно делать что-то для друзей и знакомых за символические деньги, бартер или за пиво, но главное чтобы у вас появлялся реальный заказчик, с которым нужно договариваться — это отдельный очень важный навык.
    4. Смотрите как работают старшие специалисты и просите совета. Не недооценивайте этот пункт — пара фраз арт-дира или старшего товарища могут дать «пинок», который ни одна книга не даст.
    5. Учитесь себя «продавать». Начните готовить презентацию себя уже сейчас, когда кажется, что портфолио собирать не из чего и в резюме написать нечего. Это отдельная дизайн-задача, которую тоже нужно решить, чтобы доказать свою полезность и устроиться на работу или получить проекты.
    Ответ написан
    Комментировать
  • Должен ли UI специалист создавать необходимую айдентику для сайта/приложения?

    Athanor
    @Athanor
    Лайк + Решение: не жмись, нажми
    По-хорошему, конечно, не должен.

    А так же UI дизайнер не должен: собирать требования к функционалу, разрабатывать UX, писать тексты, проводить фотосессии, общаться с заказчиком, проводить презентации и много чего ещё не должен.
    Вот только в наших реалиях в силу тотального непрофессионализма, незрелости рынка и неизвестно каких ещё причин вам чаще всего никто ничего не даст. Или дадут, но такого качества, что лучше было самому написать этот текст или взять айфон, два ватмана, сделать из них циклораму и сгенерить себе контент который уже лучше того, что вам дали. По личному опыту скажу, что это касается не только маленьких провинциальных агентств, но и компаний с именем, офисами в 11 странах мира и 9к+ сотрудниками.

    В работе дизайнера важна инициатива и самостоятельность. Хотите сделать крутой проект? Берите его в свои руки и делайте всё, что нужно для результата, иначе потом, поверьте мне, вы не захотите его выкладывать на behance или показать друзьям.

    И потом, что плохого в том, что вы получаете возможность сгенерить себе «лишней» работы? Если вы на фрилансе — получите новый проект и деньги, если работаете по найму, то это пара лишних аргументов для повышения з\п.
    Ответ написан
    Комментировать
  • Как экспортировать изображения без мыла на ретина дисплэях?

    Athanor
    @Athanor
    Лайк + Решение: не жмись, нажми
    Как раз для этого в Figma и Sketch есть специальные режимы экспорта растровых изображений: x1, x2, x3 и т.д. для разрешения 72ppi x1 = 72ppi, 72 x2=144ppi и так далее. Для векторных, соответственно, только один размер.

    Как пользоваться в Figma:
    1. Выделяем фрейм/группу элементов/элемент, который нужно экспортировать
    2. Ищем кнопку Export внизу панели инструментов
    3. Жмём экспорт, настраиваем параметры и отгружаем
    4. PROFIT

    5e2929b5e86b0648779754.jpeg
    5e2929bedef3d444870999.jpeg
    5e2929c86ccee727347507.jpeg
    Ответ написан
    1 комментарий
  • Как и когда правильно использовать actions Vuex для API-запросов?

    Athanor
    @Athanor
    Лайк + Решение: не жмись, нажми
    пришел к выводу, что запросы к API надо делать внутри actions Vuex (якобы это best practices). Однако, я совершенно не понимаю, всегда ли это необходимо

    Выносить общение с api слоем в vuex оправдано, когда данные, которые оттуда приходят вы храните в vuex.

    При этом, конечно же, лучше при мутации чего-то на сервере обновлять этот список с сервера, а не пробовать повторить эту мутацию локально.

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

    PS
    1. добавьте в ваши actions, использующие вызовы API return, иначе при вызове в компоненте они будут возвращать не тот промис, который вы от них ожидаете.
    2. Использование хэлперов mapActions, mapGetters.. позволит сделать общение с vuex в компонентах гораздо симпатичней
    Ответ написан
    1 комментарий
  • Почему eslint не исправляет лишние отступы?

    Athanor
    @Athanor
    Лайк + Решение: не жмись, нажми
    Вероятно, нужно добавить в настройки вот такое правило:
    https://eslint.org/docs/rules/no-multiple-empty-lines
    Ответ написан
    5 комментариев
  • Как изменить код JavaScript, чтобы данные брать из файла .json?

    Athanor
    @Athanor
    Лайк + Решение: не жмись, нажми
    Добавить подобный метод и вызывать его для установки data
    Ответ написан
    Комментировать
  • Остановить таймер с помощью checknet js?

    Athanor
    @Athanor
    Лайк + Решение: не жмись, нажми
    ваш таймер работает через рекурсивный setTimeout. Каждую секунду вызывается функция updateExamTimer, которая в конце выполнения планирует отложенный вызов себя же через 1 секунду.

    Особенность функции setTimeout заключается в том, что при вызове она возвращает timerId, который если успеть передать в clearTimeout, то таймер(на выполнение функции updateExamTimer) отменится.

    Следовательно, вам нужно изменить код так, чтоб при отключении интернета вызывался clearTimeout и в него передавался timerId, который вам нужно куда-то сохранять каждый раз при вызове setTimeout
    После включения интернета, вам потребуется снова вызвать setTimeout('updateExamTimer()', 1000);, чтоб запустить таймер

    Подробней

    НО так же у вас фигурирует загадочная переменная EXAM_TIME_LEFT, которая неизвестно откуда берется. Если это константа и она просто объявлена выше по коду, описанный мной вариант, скорее всего, будет работать, если она прилетает с сервера(и при обновлении страницы она меняется), то ничего работать не будет и отключать таймер придется на сервере в том числе.
    Ответ написан
    5 комментариев
  • Почему слетает верстка из-за лишнего div?

    Athanor
    @Athanor
    Лайк + Решение: не жмись, нажми
    Обратите внимание на блок #main после применения скрипта, для него применяются стили:
    .scroll-container, .scroll-container section, body, html {
        width: 100%;
        height: 100%;
    }

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