Задать вопрос
  • Как сделать svg маску для видео?

    MrDecoy
    @MrDecoy Куратор тега CSS
    Верставший фронтендер
    Вот вариант с path внутри, работает в ie 11 и нормально масштабируется
    Ответ написан
  • Блочный элемент внутри ссылки?

    MrDecoy
    @MrDecoy Куратор тега CSS
    Верставший фронтендер
    хорошо изучил html5

    Нет предела совершенству.

    Блочно\строчные элементы больше не существуют как типы в контентной модели. Всё стало сложнее.

    Контентная модель:
    Оригинал в спецификации: https://html.spec.whatwg.org/#content-models
    Перевод: https://html5book.ru/kontentnaya-model-html5/

    Коротко: у ссылки сейчас "прозрачная" модель. То есть в неё можно вкладывать всё, что можно вкладывать в её родителя.
    Ответ написан
    6 комментариев
  • Как синхронизировать время между сервером и фронтендом?

    MrDecoy
    @MrDecoy Куратор тега JavaScript
    Верставший фронтендер
    Пусть сервер присылает не дату, а количество секунд до истечения времени.
    А на клиенте запустите setInterval каждые 1000мс. (1с)
    Профит(почти).

    P.s. почему почти:
    1) коллбэк сработает через 1000мс только если поток документа не заблокирован другими тяжёлыми синхронными вычислениями.
    2) браузеры, хром в частности, могут оптимизировать тики таймеров, если пользователь покинул вкладку(перешёл на другую или свернул браузер). Таким образом, он будет тикать не каждые 1000мс, а реже. Я такого не встречал, но, возможно, вообще не будет тикать.

    По моему опыту - в рамках нескольких минут, если свернуть браузер, таймер начинал отставать на несколько секунд.
    Ответ написан
    8 комментариев
  • Почему не обрабатывается скрипт в html документе?

    MrDecoy
    @MrDecoy Куратор тега JavaScript
    Верставший фронтендер
    То, что на скрине белым - json, а не скрипт.

    Судя по скрину у Вас тэг script вложен в тэг script, так как выше этого JSON массива написан js и судя по всему он нормально распарсился вашим редактором, а лежит это всё в html файле.
    Вложенность тэгов script не допустима.

    Как работать с JSON данными, вложенными в script type aplication/json:
    https://stackoverflow.com/questions/7581133/how-ca...
    Ответ написан
    Комментировать
  • Как научиться разделять сайт на блоки при вёрстке?

    MrDecoy
    @MrDecoy
    Верставший фронтендер
    Как научиться при верстке разделять макет на блоки правильно

    С опытом, либо пройти курсы\чтобы кто-то научил.

    все делают как будто по-разному.

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

    Если я сам буду размечать макет, то, наверно, будет много косяков

    Да, так и будет. Но не ошибается тот, кто ничего не делает.

    правильно ли я разметил этот макет или нет

    В целом нормально. Только aside - не aside. Пусть название тэга не вводит Вас в заблуждение. Он не для боковых меню.

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

    Ключевое слово - косвенно.
    Баланс косвенно связан с остальным контентом? Вроде нет.
    Quick links напрямую связаны, как и форма.

    Ну и разделение у Вас пока только на макро сущности. Дальше каждая из них делится на микро сущности - блоки. А блоки на элементы.
    Ответ написан
    4 комментария
  • Как показать модальное окно только на мобильных через 30 секунд?

    MrDecoy
    @MrDecoy Куратор тега JavaScript
    Верставший фронтендер
    $(window).on("load", function() { // по событию окончания загрузки
    
      function explode(){ // как у Вас было раньше - определение функции explode
        ltShowModalBlock('b-c2248');
      }
    
      if ($(window).width() < 767) { // Если ширина меньше 767
        setTimeout(explode, 30000); // через 30000мс вызвать exlode
      } // конец если
    
    }); // конец обработчика загрузки
    Ответ написан
    3 комментария
  • В чем разница между scale и width height?

    MrDecoy
    @MrDecoy Куратор тега CSS
    Верставший фронтендер
    Самое главное отличие в том, что изменения, заданные с помощью transform не влияют на поток документа.
    То есть "физические" размеры и положение блока остаётся будто бы transform не применён, а визуально - будто применён.
    Так же применение свойства transform на элементе создаёт новый контекст наложения, относительно которого, например, рассчитывается z-index.
    А ещё использование transform может выносить вычисление на видеокарту.
    А ещё для анимации элемента лучше использовать transform, а не width\height, так как это лучше для производительности. Это следует из пункта про поток документа.

    Примерно так это выглядит:
    BeowL.png
    Зелёный - реальный размер блока, синий - до какого он был визуально уменьшен при transform: scale(0.8)
    Ответ написан
    Комментировать
  • Бесконечный скроллинг js?

    MrDecoy
    @MrDecoy Куратор тега JavaScript
    Верставший фронтендер
    Читайте документацию полностью.
    У slick есть свойство infinite, которое может быть true или false.
    Которое, соответственно, отвечает за бесконечность прокрутки.

    Там даже пример есть под заголовком "Multiple Items"
    Ответ написан
  • Как верстают сайты на React и Next?

    MrDecoy
    @MrDecoy
    Верставший фронтендер
    Верстка делается сразу в React компонентах ? Или вначале делается классическая верстка, а потом переносится в React?

    Как Вам удобнее.
    Можно заказать вёрстку на аутсорсе, а потом перевести на реакт. А можно сразу верстать на реакт компонентах.

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

    если сайт на React, там все должно быть на React или допускается сделать некоторые элементы на нативном Js

    Реакт по своей природе - библиотека, которая может быть добавлена на любой сайт.
    Что означает, что у вас может быть 90% статичной вёрстки и 10% на реакте(какие то виджиты, отдельные блоки или сложные формы).
    И наоборот.
    Как и 100% на реакте.
    Ответ написан
    Комментировать
  • Почему не подсвечивается активное окно в вертикальной навигации?

    MrDecoy
    @MrDecoy Куратор тега CSS
    Верставший фронтендер
    html, body {
      overflow-x: hidden; // уберите и заработает
    }
    Ответ написан
  • Как заменить цифры в строке шаблона?

    MrDecoy
    @MrDecoy Куратор тега JavaScript
    Верставший фронтендер
    https://developer.mozilla.org/ru/docs/Web/JavaScri...
    const advert = {
      rooms: 3,
      guests: 5,
    }
    
    let str = "4 комнаты для 7 гостей"
    str = str.replace(/^(\d+)(.*?)(\d+)(.*)$/, `${advert.rooms}$2${advert.guests}$4`) 
    // ^ - Начало строки, $ - конец строки
    // \d - цифра в регулярный выражениях.
    // точка - любой символ, + - одно и более повторений, * - ноль и более повторений
    // круглые скобки - выделение в группу
    
    // левая часть в replace - регулярное выражение, которое разбирает строку на части, правая часть - на что заменить части
    // $2 и $4 - части исходной строки, попавшие в группу с соответствующим индексом. $1 - первое число, $2 - всё что между первым и вторым числом, $3 - второе число, $4 - всё что после второго числа
    // str = "3 комнаты для 5 гостей"
    Ответ написан
    3 комментария
  • Как добавить предлагаемые варианты при вводе в input?

    MrDecoy
    @MrDecoy Куратор тега JavaScript
    Верставший фронтендер
    В простом виде - htmlbook.ru/html/datalist
    А вообще такие вещи, как правило, реализуются так: делают ajax запрос по мере ввода с некоторым debounce эффектом, и отрисовывают кастомные автокомплиты.
    Например вот: autocomplete-js.com
    Или вот https://tarekraafat.github.io/autoComplete.js/#/
    Или вот https://github.com/algolia/autocomplete
    Ответ написан
    1 комментарий
  • Как считать слайды по одному при том что в slick стоит slidesToScroll: 4?

    MrDecoy
    @MrDecoy
    Верставший фронтендер
    Округления вверх нужны для нечётных комбинаций
    Ответ написан
    1 комментарий
  • Почему не работает v-model?

    MrDecoy
    @MrDecoy
    Верставший фронтендер
    Короткий ответ:
    1) Задайте инпуту атрибут value пропс value через v-bind
    2) нужно эмитить событие input с новым значением value при наступлении события input
    Подробнее:
    https://kirillurgant.com/notes/creating-custom-inp...
    Ответ написан
    2 комментария
  • Как сверстать такое меню?

    MrDecoy
    @MrDecoy Куратор тега CSS
    Верставший фронтендер
    Если Вам нужно чтобы заливка обрезалась по дуге с картинки, то бы сделал как-то так:
    header, внутри которого nav.
    Задал бы хедеру логотип(с вот этой дугой вметсе) фоновой картинкой, а на основную высоту логотипа задал бы padding сверху. Соответственно, спозиционировал бы правильным образом фоновую картинку с помощью background-position: center top XXpx; (где XX это вот тот зазор сверху между логотипом и самым верхом страницы, пикселей 20 на глаз)
    Ну а теперь самое интересное.
    Обрезал бы nav с помощью clip-path, в соотвествии с розовой линией, указав клюевые координаты, чтобы было плюс минус-дуга. При этом крайние координаты указывал бы в процентах, что позволит nav расти вниз, при добавлении ссылок.
    60b7da23d545a607927710.jpeg

    UPD: мне стало интересно и я решил набросать простенькую демку по описанному выше. Правда картинку выбрал по сложнее :-)
    Откройте в новой вкладке и сделайте ширину в 768пикселей, чтобы более менее адекватно выглядело(хотя тут в фрэйме тоже пойдёт).
    Более плавной дуги можно достичь увеличением количества точек в полигоне. В этом может помочь иллюстратор.
    Можно нарисовать этот полигон прямыми линиями в нём, экспортировать в свг, а потом посмотреть оттуда координаты точек.
    Ну а для более лёгкого адаптива точки нужно рисовать в процентах, а не пиксилях.
    Ответ написан
    Комментировать
  • Как разделить два события transitionend?

    MrDecoy
    @MrDecoy Куратор тега JavaScript
    Верставший фронтендер
    Не идеально, но порядок срабатывания соответствует желаемому.
    setTimout просто для красоты
    Ответ написан
    Комментировать
  • Как сделать поле ввода html для ввода меток и ключевых слов?

    MrDecoy
    @MrDecoy Куратор тега CSS
    Верставший фронтендер
    Набросал на скорую руку, просто потому что было интересно, хотя, по хорошему, ответом на Ваш вопрос должны быть ссылки на изучение js и на habr.freelance, так как Вы не прикладываете своих попыток к вопросу, а значит это задание, а не вопрос.

    В демке ниже используются следующие техники:

    Вёрстка:
    • flexbox
    • HTML-мнемоники (для крестика на кнопке)

    JS:
    • Обработка событий, в том числе полей формы (change)
    • Поиск и создание элементов
    • Делегирование событий (в функции onSelectorClick определяется что если клик произошёл на кнопку с крестиком, то удалить родительский элемент кнопки. В итоге получаем всего один слушатель на все элементы selector сколько бы их не было.)
    • Замыкания. Позволили нам найти все нужные html элементы один раз(поиск элементов в DOM одна из самых дорогих операций), а потом просто обращаться к переменным, в которые мы их сохранили из функций.

    Ответ написан
    Комментировать