• Как сверстать такой блок?

    Get-Web
    @Get-Web Куратор тега CSS
    Front-End Developer
    Как вариант:
    Ответ написан
    Комментировать
  • Почему в Safari долго подгружается видео?

    dyuriev
    @dyuriev
    A posteriori
    про кодеки для веба:
    https://habr.com/ru/post/442020/
    если прочтете статью полностью, то вопрос "какие видеокодеки лучше использовать" отвалится сам по себе, более того варианты кодеков для веба и как их применять в теге актуальны на сегодняшний день, разве что поддержка AV1 значительно расширилась (но вот аппаратная в зачаточном состоянии)

    по части почему долго - предполагаю, потому что сначала грузит видео, а только потом его начинает воспроизводить, то с данной вводной инфой гадать остается, вероятно у вас mp4/H.264 и так-называемый moov-атом находится в конце контейнера, а не в начале, и сафари начинает воспроизводить файл только когда до него доберется. Но это голая теория в ответ на достаточно размытый вопрос

    принудительно перетащить moov-атом в начало mp4/H.264 файла можно с помощью ffmpeg:
    ffmpeg -i input_video_file.mp4 -vcodec copy -acodec copy -movflags faststart output_video_file.mp4
    Ответ написан
    Комментировать
  • Какие цвета не будут резать глаз?

    HanaK
    @HanaK
    Просто и понятно о финансах и налогах
    Есть еще сайт https://color.adobe.com/create
    Это сервис для дизайнеров, которые разрабатывают цветовые палитры.
    Квадратики с разными цветами ПОД колесом спектра — это палитра. В центре палитры — квадрат с галочкой, это отправной цвет. Этот же цвет отмечен кружочком с галочкой на колесе спектра:
    На этой палитре хорошо "примерять" сочетания и контрасты.
    Ответ написан
    Комментировать
  • Почему UTM - метки пропадают внутри сайта?

    @tgarl
    Что такое UTM-метка - это по сути просто параметр в адресной строке. В основном нужны для отслеживания в метрике сколько человек перешло по внешней ссылке откуда-то на конкретные страницы. К примеру пришло 1000 человек на страницу в целом, метка позволяет понять что например из письма всего 1, значит толку от такого письма. Так что логично что если на данную страницу человек пришел с метками, то дольше они не передаются. По вашему вопросу видимо вы что-то хотите получить, но для этого решили использовать инструмент меток. Объясните общую задачу.
    Ответ написан
    3 комментария
  • Как упростить код который должен возвращать true or false?

    Krasnodar_etc
    @Krasnodar_etc
    fundraiseup
    const isOpen = Boolean(rules.isDefault || rules.child?.length);
    Ответ написан
    Комментировать
  • Как написать регулярное выражение для телеграмм никнеймов?

    john36allTa
    @john36allTa
    alien glow of a dirty mind
    1. Узнать требования к никнейму
    Официальная документация требует:
    Символы: A-z (регистр не важен), 0-9 и "подчеркивание"
    Длина: 5-32
    2. Описать регулярку:
    const validTelegramNickname = /^[A-Za-z\d_]{5,32}$/;
    Ответ написан
    Комментировать
  • Есть ли кроссбраузерный вариант копирования текст в буфер обмена?

    @vsvasya
    function copyToClipboard(value) {
        var prev_focus = document.activeElement;
        var area = document.createElement('textarea');
        area.value = value;
        document.body.appendChild(area);
        area.focus();
        area.select();
        area.setSelectionRange(0, 99999); /* For mobile devices */
        document.execCommand('copy');
        document.body.removeChild(area);
        if (prev_focus) {
            prev_focus.focus();
        }
    }


    Работает везде - Firefox, Chrome, Safari
    Ответ написан
    Комментировать
  • Можно ли заставить расширение хром работать в фоне?

    calirails
    @calirails Автор вопроса
    Надим Закиров подсказал ответ на вопрос:
    для того чтобы избежать остановки таймеров, на странице, где работает скрипт запускаешь бесконечное воспроизведение mp3-файла с тишиной. Лично мне это помогает избежать заморозки.

    <video style="position: fixed; left: 30px; bottom: 30px; z-index: 99999; height: 55px; width: 300px; border-radius: 100px;" controls loop name="media">
      <source src="https://site.ru/fon.mp3" type="audio/mpeg">
    </video>
    Ответ написан
    Комментировать
  • Какие требования к junior front-end разработчику на 2020-2021 год?

    saboteur_kiev
    @saboteur_kiev Куратор тега Карьера в IT
    software engineer
    Требования не изменились за последние 20 лет.
    Умение САМОСТОЯТЕЛЬНО работать, искать вакансию и устраиваться.
    Если не можешь взять задачу на бирже, значит не готов работать на бирже.
    Если не можешь пройти интервью, значит не готов к работе в офисе.
    Ответ написан
    Комментировать
  • Как предпочтительнее вешать обработчик событий на элемент?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Чтобы ответить на этот вопрос, достаточно подумать над тем, как будет выглядеть подключение ещё одного обработчика в каждом из представленных случаев.
    Ответ написан
    1 комментарий
  • Как написать type guard для отдельного поля интерфейса?

    Lynn
    @Lynn
    nginx, js, css
    interface PostAttachVideo {
      type: 'video'
      attach: AttachVideo
    }
    
    interface PostAttachAudio {
      type: 'audio'
      attach: AttachAudio
    }
    
    type PostAttach = PostAttachAudio | PostAttachVideo
    
    function isAudio(attach: PostAttach): attach is PostAttachAudio {
        return attach.type === 'audio';
    }


    песочница
    Ответ написан
    Комментировать
  • Как выкинуть пользователя с сайта?

    yarkov
    @yarkov Куратор тега JavaScript
    Помог ответ? Отметь решением.
    Показать плашку с текстом:
    Отключите блокировщик рекламы чтобы продолжить пользоваться сайтом.
    Инфа сотка. Меня выкидывало с сайта безвозвратно.
    Ответ написан
    Комментировать
  • Живы ли вэб-компоненты?

    Suntechnic
    @Suntechnic Автор вопроса
    Мой собственный ответ после изучения темы и чтения иностранных коллег будет таким:

    Технология была многообещающей и интересной на старте. Для ее поддержки гугл даже придумал отдельную спецификацию HTML Imports: https://w3c.github.io/webcomponents/spec/imports/i... (можете не ходить, там 404), что позволяло подключать однофайловые компоненты прямо в документ так:
    <link rel="import" href="my-component.html">
    Классно же да?

    Но технология не приобрела популярности, возможно так как была слишком простой и понятной, а именно в это время на пик славы вышел npm, gulp и вот это всё. В моду входила непонятная магия, утрата контроля над кодом и всякие оптимизаторы позволявшие сделать для одного слайдера на главной страницы бандл в полтора, а иногда 2-3 Мб. кода, и всё это без всяких там jQuеry.
    Ребята одумались и убрали спецификацию HTML Imports, предлагая разбивать компоненты на 3 отдельных файла - js, css и html с шаблоном. Причём js надо было подключать на странице, css тоже, а html должен был загружать по задумке создателей уже в само js. Такой подход позволял резко усложнить работу с web-components и сделать код снова неуправляемым, но было поздно - технология уже уступила позиции конкурентам.
    Конечно это был сарказм, если кто-то не понял.

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

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

    Lynn
    @Lynn
    nginx, js, css
    Максимально близкое к желаемому это Discriminating Unions

    interface ModelOptionRange {
      value: [ number, number ];
      range: true;
    }
    
    interface ModelOptionValue {
      value: number;
      range: false;
    }
    
    type ModelOption = ModelOptionRange | ModelOptionValue;
    
    function check(v: number, cond: ModelOption): boolean {
      if (cond.range) {
        // тут cond точно типа ModelOptionRange
        const [ min, max ] = cond.value;
        return (min <= v && v <= max);
      } else {
        // а тут ModelOptionValue
        return v === cond.value;
      }
    }


    песочница
    Ответ написан
    1 комментарий
  • Как вывести тип из части интерфейса с вложенной структурой?

    Kozack
    @Kozack
    Thinking about a11y
    Book['author']
    Но если вам нужно чтобы по программе гуляли разные куски интерфейса, то лучше разбить его на куски
    interface BookAuthor { ... }
    interface BookPrice { ... }
    interface Book {
      id: number,
      author: BookAuthor,
      price: BookPrice
    }
    Ответ написан
    1 комментарий
  • Как можно корректно написать асинхронный метод у объекта в typescript с дженериком?

    bingo347
    @bingo347 Куратор тега JavaScript
    Crazy on performance...
    В дополнение к Aetae - дженерик здесь тоже не нужен
    Да, парсинг JSON возвращает any (по историческим причинам) и его вот таким дженериком можно легко кастануть в любой тип. Только зачем вообще использовать TypeScript если мы вечно его затыкаем своей правотой?
    Даже если данные приходят с нашего сервера, и мы точно знаем их тип - их нужно проверять, ибо нет гарантии, что никто не ошибся на бэке, что мы не ошиблись в описании типа в который кастуем.
    Поэтому должен быть тип unknown, чтоб TypeScript требовал все проверить перед использованием:
    const ApiServiceModule = {
      get: (url: string): Promise<unknown> => fetch(url)
        .then(response => response.json())
        .catch(err => console.error(err))
    }
    Ответ написан
    Комментировать
  • Поможете с git flow?

    Оба разработчика, когда работают в своих ветках, должны поддерживать актуальное состояние, т.е. периодически вливать (merge) dev в свою ветку.

    Поэтому, прежде чем делать pull request, разработчик B должен вмержить dev в свою ветку. В случае, если при этом возникнут конфликты, он решает их внутри своей ветки. И только после того, как он удостоверится, что эта ветка содержит все коммиты из dev и все тесты проходят, можно делать pull request в dev.
    Ответ написан
    Комментировать
  • Как сделать фон кликабельным js?

    @marioKun
    d=document.querySelector("#bg");
    d.onclick = function(e) {
      if (e.target !== this)
        return;
     alert("click")
    }

     Попробуйте так
    Ответ написан
    Комментировать
  • Как создать папку с разными именами в системе и визуально?

    tsklab
    @tsklab
    Здесь отвечаю на вопросы.
    Ответ написан
    Комментировать
  • Почему gulp uglify выдаёт ошибку?

    Используйте terser вместо давно устаревшего uglify.
    Ответ написан
    1 комментарий