• Как удалить класс при клике на body?

    ArsenyMatytsyn
    @ArsenyMatytsyn Куратор тега JavaScript
    Руководитель frontend направления, предприниматель
    Тебе необходимо реализовать механизм всплытия и перехвата.

    Обновление:
    Грубый пример можно глянуть тут. Грубый потому что не учитывает вложенные элементы, от него надо всплывать.
    Ответ написан
  • Сортировка массива?

    ArsenyMatytsyn
    @ArsenyMatytsyn Куратор тега JavaScript
    Руководитель frontend направления, предприниматель
    У JS есть великолепные инструменты для работы с массивами, один из них → .sort(), который позволяет не перебирать ручками все ключи со значениями.

    А для сравнения двух и более достигается с помощью оператора ИЛИ (||). Таким образом:
    array.sort((a,b) => { return a.z - b.z || a.y - b.y })

    Где z и y ключи объекта в массиве, а разница → «направление» смещения.

    ЗЫ: в зависимости от типа полей их можно суммировать для достижения определенных результатов, к примеру развернув дату и добавив ее к строке:
    array.sort((a,b) => { 
        if('20200520a' < '20200520б'){ 
            return 1;
        }
        else {
            return -1;
        }
    })

    Последний вариант требует тщательного изучения принципа работы. Так же рекомендую сразу начинать присматриваться к .map().
    Ответ написан
    Комментировать
  • Как это сделать на ЧИСТОМ js?

    ArsenyMatytsyn
    @ArsenyMatytsyn Куратор тега JavaScript
    Руководитель frontend направления, предприниматель
    Вешать inrsectionObserver или по старинке ловить позиции, слушая скролл.

    А запуск анимации можно реализовать как на JS (перебрать с цикле с приростом setTimeout), так и сменой класса, а задержку и анимацию описывать в CSS классе.
    Ответ написан
    Комментировать
  • Как удалить файл из истории коммитов в GIT?

    ArsenyMatytsyn
    @ArsenyMatytsyn
    Руководитель frontend направления, предприниматель
    git rm --cached [filename]

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

    ArsenyMatytsyn
    @ArsenyMatytsyn
    Руководитель frontend направления, предприниматель
    Данный вопрос если и не нарушает пункт 5.13 правил, то очень на грани.

    Да и ответ крайне прост → смотришь требования вакансий, тому и учишься\добиваешься принятия на работу.
    Ответ написан
    2 комментария
  • Как на JS сделать колонки одинаковой высоты?

    ArsenyMatytsyn
    @ArsenyMatytsyn Куратор тега CSS
    Руководитель frontend направления, предприниматель
    Вообще-то на CSS можно без проблем такое сделать. По пути наименьшего сопротивления → на гридах с параметром 1fr для шаблона по высоте. На флексбоксах тоже такое можно муткануть, но не так приятно, как на гридах.

    А на JS надо брать размер элемента, можно сразу три, чтобы сравнивать и брать больший, а затем присваивать его всем в качестве min-height (иначе при перерасчетах он будет всегда фикс высоту выдавать).

    Желательно это все завернуть в функцию, которую вызвать при инициации скрипта И запустить в вотчере события изменения размера окна.
    Ответ написан
    3 комментария
  • Как правильно верстать разные шапки на одном сайте?

    ArsenyMatytsyn
    @ArsenyMatytsyn
    Руководитель frontend направления, предприниматель
    1. Если изменения не конструктивные, то подход верный, модификатор и через него управление элементами. При этом надо учитывать, что элементы могут быть замискованы, поэтому если отличается какое-либо свойство элемента, и описание его микса с элементом родителя, то стоит использовать модификатор уже не ко всему блоку или элементу (шапки), а ко вложенному. В примере нет миксов, поэтому данный совет не так очевиден.
    2. Если изменения конструктивные и модификаторами не отделаешься (да, бывает такое), то это абсолютно другой блок с элементами на другой странице.
    Ответ написан
    Комментировать
  • Как правильнее будет наименовать блок со вложеностью?

    ArsenyMatytsyn
    @ArsenyMatytsyn
    Руководитель frontend направления, предприниматель
    .main
    →.main__sidebar
    →.main__content
    →→.link
    →→.elem
    →→→.elem__title
    →→→.elem__content
    Ответ написан
    Комментировать
  • Как сделать подсветку одного якоря?

    ArsenyMatytsyn
    @ArsenyMatytsyn Куратор тега CSS
    Руководитель frontend направления, предприниматель
    Якорь это ссылка внутри документа.
    Чтобы переключить отображение чего-либо якоря не используются, вместо них необходимо использовать скрипт, к примеру, табов.

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

    ArsenyMatytsyn
    @ArsenyMatytsyn Куратор тега JavaScript
    Руководитель frontend направления, предприниматель
    1. Если тебе надо сделать переводы сообщений на сайте, то Андрей тебе дал основной ключ в этом направлении — i18n. Хотя на самом деле ничто не мешает хранить объект с переводами, и самому набросать простенькую функцию перевода (ИМХО i18n раскрывает себя в ЯП, где происходит PO-пакетов).
    2. А вот если тебе требуется динамический перевод с запросом в переводчик → милости просимс в любое API переводчика с запросами того, что необходимо перевести.
    Ответ написан
  • Как подсчитать сумму значений в столбце SQLite?

    ArsenyMatytsyn
    @ArsenyMatytsyn
    Руководитель frontend направления, предприниматель
    Можно поговорить с базой на ее языке, например.
    Или пробежаться по данным уже средствами ЯП в рекурсии.
    Ответ написан
    Комментировать
  • Как сделать проверку if else в Python?

    ArsenyMatytsyn
    @ArsenyMatytsyn
    Руководитель frontend направления, предприниматель
    Нус, для разнообразия ты можешь попытаться словить ошибку конструкцией try→except, чтобы понять, что именно у тебя не происходит.

    А вообще в Python конструкция if else существенно отличается от других ЯП только «средним звеном», который elif (это краткое от else if). Ну и тернарники смешно пишутся.
    Ответ написан
    Комментировать
  • Как сделать симуляцию клика или разблокировку скрытых данных?

    ArsenyMatytsyn
    @ArsenyMatytsyn
    Руководитель frontend направления, предприниматель
    Тяжелые будни копировальщика...

    1. Морда Авито, как и многие другие написаны на JS и ничего общего не имеют с бэкендом (Тут вообще по барабану какой ЯП), кроме как запросами.
    2. DOM генерируется динамически в зависимости от действий пользователя.
    3. Этого всего ты никогда не увидишь ковыряясь в сырцах, так как DOM показывается уже в дебаггере (F12).

    Итого:
    От сюда - вопрос, как мне нажать любую из этих кнопок скриптом на PYTHON

    Вопрос не про пайтон. Тебе нужно понять, как работает JS, как он работает именно в данном случае (смотри фреймворки типа Vue, React, ноги оттуда растут), а уже с легкой подачи fetch-а от JavaScript-а в бэк уже делай что угодно.
    Ответ написан
  • Векторные редакторы для анимирования?

    ArsenyMatytsyn
    @ArsenyMatytsyn
    Руководитель frontend направления, предприниматель
    1. Inkscape + Gimp. Тык.
    2. Inkscape → SVG + SMILL.
    3. Wine → софт от винды.
    Ответ написан
    1 комментарий
  • Как сделать чтобы тень слева у первого товара не срезалась?

    ArsenyMatytsyn
    @ArsenyMatytsyn Куратор тега CSS
    Руководитель frontend направления, предприниматель
    1. Задать отступ для размещения тени.
    2. Использовать отрицательный отступ на те же значения, чтобы не уехала сетка.
    Ответ написан
  • Как сделать автоматическое удаление лишних отступов?

    ArsenyMatytsyn
    @ArsenyMatytsyn Куратор тега CSS
    Руководитель frontend направления, предприниматель
    1. На выводе почти любой тег порежет лишние пробелы, исключеним будет <pre> к примеру.
    2. А на вводе c JS (да и не только), такой вопрос уже был.
    Ответ написан
    1 комментарий
  • Каким образом анимировать баннер в Битрикс?

    ArsenyMatytsyn
    @ArsenyMatytsyn
    Руководитель frontend направления, предприниматель
    Прямо в коде по классам и импортам обычно можно найти либы, что используются. Этот вроде SliderRevolution.

    Тем не менее так еще умеет делать SVG, как сам по себе, так и с помощью фильтров, масок на нем.
    Ответ написан
    Комментировать
  • Почему не рендерится body в IE11?

    ArsenyMatytsyn
    @ArsenyMatytsyn Куратор тега CSS
    Руководитель frontend направления, предприниматель
    Проблема с закрытием тегов, на скрине видно, что сразу после </head> происходит закрытие </html>. Если многие браузеры могут такое простить и отобразить, как надо, то IE в их число не входит.

    PS: я вот сам столкнулся с подобным, но уже в конкретной ситуации, которую могу описать. Есть проект с частичной интеграцией Vue. И вот такое происходит, когда в props, в который должно что-либо придти не приходит. Выкашивает весь код.
    Ответ написан
  • Как реализовать на сайте динамический css?

    ArsenyMatytsyn
    @ArsenyMatytsyn Куратор тега CSS
    Руководитель frontend направления, предприниматель
    1. CSS переменные (сразу смотри поддержку браузерами).
    2. Выводить данные в теге <style> на этапе генерации страницы (частый метод в WP темах):
    <head>
        ...
        <style>
            .classname {
                color: <?= $settings['classname_color']; ?>;
            }

    Ничего сложного, на WP все формируется внутри PHP файлов, которые так могут из коробки, главное занести переменную в вид из конфигу (как и любую другую для вывода, собсно).
    3. Генерировать CSS-файл, который будет подключен в тело.
    4. При выводе генерировать инлайновые стили в тегах (о ужес, но так можно).
    5. Передавать в JS, которым генерировать динамические стили. Принцип описан в документации JS. Вопрос только в том, как туда данные попадут, это может быть, скажем метод а-ля API, чтобы за-fetch-ить JSON или занос в переменную прямо в тело:
    <script>
        var data = <?= json_encode($settings); ?>
        document.querySelector('.classname').style.color = data.classname_color;


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

    6. Если бы не WP с его условно-законченным видом, то можно компилить на уровне бэкенда сырцы типа Sass, передавая в него данные из базы с помощью сборки (я думаю это можно и под WP накрутить, но я лично не пробовал).

    ЗЫ: Градация от первого до пятого → в порядке абсурдности, чем выше, тем адекватнее. 6 уже особняком идет.
    Ответ написан
    3 комментария
  • Как зафиксировать блок внизу страницы?

    ArsenyMatytsyn
    @ArsenyMatytsyn Куратор тега CSS
    Руководитель frontend направления, предприниматель
    1. Не издеваться над флексами (overflow + фиксированные размеры)
    2. В принципе не загонять себя в такие рамки.
    3. Решение вот.
    Ответ написан
    Комментировать