Задать вопрос
  • Могу ли я в чистом javascript в асинхронной функции подождать возникновения события?

    lazalu68
    @lazalu68
    Salmon
    Конечно можете. После await у вас должен идти промис, который будет ресолвиться из обработчика события. Если речь о событиях DOM, то как-то так:

    HTMLElement.prototype.waitFor = function(event_name) {
        if (event_name) {
            return new Promise((res, rej) => {
            	const listener = function() {
            		res()
            		this.removeEventListener(event_name, listener)
            	};
    
            	this.addEventListener(event_name, listener);
            })
        } else {
            throw 'No event passed to waitFor method!';
        }
    }
    
    async function foo() {
    	const start = new Date();
    	await document.querySelector('body').waitFor('click');
    	console.log('uspeshno dojdalis clicka, jdali celih ' + ((new Date().getTime() - start.getTime())/1000) + ' sekund');
    }
    
    foo();
    Ответ написан
    7 комментариев
  • Как сделать веб-сервис и не утонуть в процессе?

    gobananas
    @gobananas
    finishhim.ru
    1. Выделить одну главную функцию сервиса
    2. Сделать её, сверстать и выкатить, это будет MVP
    3. Не заморачиваться с вёрсткой
    4. Не заморачиваться с методами авторизации
    5. Не думать про нагрузку, не заниматься оптимизацией кода и БД
    6. Если поймали себя на мысли что вы думаете какой паттерн тут применить вы в Ж, просто пишите код, который работает!!
    7. Не совмещать написание сервиса, который вы РЕАЛЬНО хотите запустить с изучением чего-то нового (языка, БД). Утоните в учёбе и никогда не запустите.

    Это всё на своём опыте написания проекта говорю вам а не голословно ))
    Ответ написан
    10 комментариев
  • Как сверстать без JS?

    EaGames
    @EaGames
    Front-end developer
    Так ?
    Ответ написан
    Комментировать
  • Какой выбрать таскменеджер для одного человека?

    zamboga
    @zamboga
    Аналитика данных, BI-аналитика, дашборды
    контролировать время, которое я трачу на те или иные задачи


    С описанием — те, которые опробованы мною.

    • https://Toggl.com — отдельный софт в трее, расширение под хром, приложение на андроид. Интеграция с кучей сервисов (трело, асана и т.д.). Хоткеи тоже есть. Бесплатного тарифа вполне достаточно. автотрекинг
    • https://RescueTime.com - только в автоматическом режиме логирует, в каких приложениях/сайтах проводите время, и выводит подробную статистику. Бесплатного аккаунта хвататет за глаза.
    • https://TimeDoctor.com — платный. Есть отдельный софт в трее, хоткеи. Интеграция с кучей сервисов.
    • https://pomelloapp.com — простой помидоро-трекер, интеграция с трелло. Хоткеи есть, в трее не сидит, простенький бар поверх всех окон
    • https://PomoDoneApp.com — простой помидоро-трекер, интеграция с трелло. Хоткеи есть, в трее показывает таймер с обратным отсчетом времени.
    • https://tmetric.com — простой трекер, интеграция с трелло, есть десктопное приложение, помидорок нет. Хоткеи есть, сидит в трее
    • https://www.timecamp.com — есть куча интеграций, расширение хром, приложение в трее, автотрекинг
    • https://ManicTime.com - мощный стэндалон тайм-трекер. Очень гибкий в настройках, сидит в трее, есть хоткеи, разные типы таймеров. Платный. Статья danila.org.ua/otrabotannyie-chasyi-moy-podhod
    • https://toptal.com/tracker/
    • ○ Grindstone https://www.epiforge.com/grindstone/
    • https://www.primaerp.com
    • https://tahometer.com
    • https://aTimeLogger
    • https://myhours.com
    • https://wakatime.com
    • savemytime.co

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

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Практически все подобные вопросы про бордеры можно решать с помощью линейных градиентов (пример). Это получается как бы не бордер, а просто нарисованные на фоне линии.
    Ответ написан
    4 комментария
  • Интересная верстка?

    @Deexter
    Можно поступить подобным образом https://jsfiddle.net/arfdnvum/1/
    Ответ написан
    1 комментарий
  • Как реализовать слайдер, в котором левая и правая картинка имеет полупрозрачность?

    Krasnodar_etc
    @Krasnodar_etc
    fundraiseup
    Самый простой вариант - просто крепи на сам слайдер before и after по бокам. Им и задавай градиент
    Ответ написан
    Комментировать
  • Как быстро реагировать на новые задачи на биржах фриланса?

    zamboga
    @zamboga
    Аналитика данных, BI-аналитика, дашборды
    Искать заказы на других площадках, кроме ад.кг

    Ловите из моей подборки:
    • Биржи фриланса СНГ
    https://primelance.com — агрегатор фриланс-бирж.
    https://freelance.ru/
    https://freelansim.ru/
    https://YouDo.com
    https://fl.ru/
    https://freelancehunt.com/
    § Статистика цен https://freelancehunt.com/statistics/rates/currency/rub
    https://www.weblancer.net/
    www.free-lance.ru
    https://yukon.to — пока бесплатная (январь 2018)

    • Биржи фриланса международные
    https://www.upwork.com
    www.freelancer.com
    https://www.peopleperhour.com
    https://www.guru.com
    fiverr.com
    https://envato.com
    https://talent.hubstaff.com
    https://remoteok.io
    https://weworkremotely.com
    https://www.cybercoders.com
    https://djinni.co
    https://www.toptal.com
    https://www.linkedin.com
    https://elance.com — куплен upwork
    https://odesk.com — куплен upwork
    Ответ написан
    1 комментарий
  • Как лучше всего реализовать подобный элемент?

    @overveg
    Вариант с использованием box-shadow:
    box-shadow: 10px -10px 0px 0 white,
        10px -10px 0px 1px teal;

    При такой реализации можно обойтись без лишних оберток и использования псевдоэлементов
    Пример на codepen
    Ответ написан
    Комментировать
  • Верстка с нуля: какие основные этапы работы?

    Vlad_IT
    @Vlad_IT Куратор тега Вёрстка
    Front-end разработчик
    Использую vscode+webpack+pug+scss+бэм. Из физических инструментов, основной моник: lg ultrawide 29um69g, рядом прикручен моник от ноутбука повешенный вертикально, подключенный через универсальный скаллер.

    0) Запускаю Spotify :-)

    1) Произвожу установку всех необходимых модулей для сборки. В моем случае у меня набор конфигураций для webpack (отдельные файлы для pug, scss, static и.т.д., выбираю что нужно).

    2) Запускаю avocode, загружаю в него макет. Определяю в нем переменные (в то же время записываю их, чтобы сразу кинуть в scss файл) для цветов, размеров шрифтов и.т.д. чтобы при получении кусочков кода из него, он сразу расставлял переменные.

    3) Запускаю VS Code, открываю нужную папку.

    4) Пишу размету на Pug. Пишу с БЭМ, если встречаю повторяющийся блок, то открываю файл _mixins.pug, в который пишу миксины для повторяющихся блоков, например товаров, пунктов меню, каких-то блоков и.т.д. Pug умеет делать циклы, это ускоряет сильно.

    5) Когда HTML готов, начинаю делать каркас. Если дизайн сделан по сетке, определяю контейнеры, колонки, строки в свои классы (не пишу в html тучи классов аля col-md-6, а пишу в SCSS инклуды в нужные мне блоки, типа @include make-col(2) и.т.д.).

    6) Экспортирую картинки из Avocode. Очень делается просто, указываю папку и просто кликаю экспорт и ввожу название файла и расширения. Преимущественно для иконок использую svg, если нет svg, то ищу эту иконку в интернете (дизайнеры редко рисуют иконки сами, но зато любят вставлять их не в векторе). Если иконка простая, могу сам ее в inkscape обвести, ну и если нет, то экспортирую png в размере (благо авокод это позволяет, если конечно дизайнер не вставил в исходном маленьком размере). Когда есть контакт с дизайнером, трясу его, ибо растр это плохо для иконок.

    7) Пишу стили блоков из страницы. На этом этапе можно на втором монике параллельно смотреть футураму или
    Арчера :-) Но чаще на широком монике слева браузер, справа VS Code, а на втором монике Avocode (может меняться местами с браузером). Мысленно нарезаю страницу на блоки. Для каждого блока (БЭМ) создаю отдельный scss файл (кто-то даже для элемента создает, но мне лень), из него сразу выписываю все селекторы. Иногда могу сначала выписать все селекторы со страницы (но так лучше не делать, т.к. во время работы может потребоваться изменить что-то в разметке), но чаще для одного блока выполняю этот пункт и за ним сразу выполняю пункт 8, потом для нового блока опять 7 и 8 и.т.д.

    8) Пишу css код вместе с Avocode, у него беру нужные мне параметры (а он уже подставил в них переменные), и вставляю в мой код. И параллельно сверяю со скрином макета используя вот это расширение https://chrome.google.com/webstore/detail/perfectp...

    9) Пишу адаптив. Я не могу привыкнуть к методологии mobile-first, поэтому пишу всегда сначала полную версию сайта. Я понимаю, что это чревато всякими проблемами и это типа не модно, но мне норм.

    10) Медиа-запросы пишу прямо в блоках, для каждого блока/элемента/модификатора может быть отдельный медиа-запрос. Но для начала определяю breakpoint'ы для разных экранов (чтобы их не было сотни разных), если использую Bootstrap, то беру его breakpoint'ы.

    11) Добавляю анимашки. Даже если заказчик не просил отдельно (и если не указал отдельно, что нельзя), он все равно будет доволен, а с animate.css+onscreen.js это вообще работа 10 минут. Сложные анимации обговариваю отдельно, чтобы не сделать ненужную работу.

    11) Все снова сверяю, пишу скрипты где надо. Для слайдеров в 99% случаев подходит slick (с доработками конечно, но там хорошее API), для других случаев могу написать свой.

    12) Сдаю заказчику и жду ответа сидя на тостере/пикабу.

    Это чисто мой опыт, опыт фрилансера, не знаю, как делают другие и не могу на 100% утверждать что это 100% правильный способ. Я так и не смог заставить свой конфиг webpack правильно вставлять спрайты svg.
    Надеюсь чем-то поможет мой ответ.
    Ответ написан
    7 комментариев
  • Обязательно ли указывать картинке размеры в html?

    aliencash
    @aliencash
    Партизан
    Мысль вот в чем - если указать размеры, браузер выделит под изображение место на странице и когда оно загрузится не будет скачкообразного смещения элементов. При использовании качественных, объемных изображения, пользователь может уже начать изучать текстовую информацию на странице и тут вдруг бац, браузер дошел до картинки, текст который читал пользователь сместился, пользователь вынужден искать где он читал. Однако непосредственно в html указывать размеры не нужно. Это можно сделать в css и уже там реализовывать адаптивность. Закономерный вопрос - скачкообразное смещение в этом случае все же может возникнуть. Для того чтобы этого гарантировано избежать есть различные методики. Например critical path css. Возвращаясь к html, с введением тега picture html то же получил инструменты для адаптивности. Рекомендую изучить.
    Ответ написан
    Комментировать
  • Как провести собеседование на верстальщика?

    @vanyamba-electronics
    Посмотрите вопросы на знание HTML и на знание JavaScript.
    Ответ написан
    Комментировать
  • Какие библиотеки, плагины и прочее для верстки вы используете в своих проектах?

    SergGrbanoff
    @SergGrbanoff
    UX/UI Desinger, Front-End Developer
    Фреймворки, библиотеки и плагины для верстки сайта.

    1. Bootstrap - самый популярный HTML, CSS, и JS фреймворк в мире для разработки отзывчивых, mobile-first проектов в вебе.

    2. slick - Адаптивный слайдер для сайта

    3. Owl Carousel 2 - красивый, отзывчивый карусельный слайдер

    4. Fotorama - плагин для создания галереи на сайте

    5. MagnificPopup - плагин для создания модальных окон

    6. FancyBox - построениe всплывающих окон

    7. Mmenu - мобильное меню


    8. bxSlider - отзывчивый jQuery-слайдер для контента


    9. Fullscreen Slit Slider - слайдер с интересной анимацией

    10. parallax.js - эффект Parallax

    Первая 10-ка
    Ответ написан
    Комментировать
  • В каком виде верстальщик сдает работу?

    Vlad_IT
    @Vlad_IT Куратор тега Вёрстка
    Front-end разработчик
    Постарался не повторять остальные комменты. Нашел кое что новое.
    1) Временную шкалу лучше задавать в процентах, чтобы программисту было удобнее указывать позицию, и не будет необходимости вычислять ширину временной шкалы, чтобы определять позицию по времени.
    Все штуки, которые могут иметь значение из бесконечного множества (произвольные числа, текст, картинки), и эти штуки буду потом меняться программистом (в админке, скрипте), нужно указывать не в css файлах, а прямо в HTML, чтобы программисту было удобнее и нагляднее. Можно разве что, указать через стили значение по умолчанию.
    2) Кнопки назад, вперед имеют неправильные title (кнопка назад - вперед, а вперед - назад).
    3) Кнопка прокрутки "вверх" в футере прячется за блок "Join Our Community"
    4) Что делает элемент a.arrow_up? Мне кажется, что вы хотели в него добавить текст из логотипа.
    5) В футере надо бы отступ снизу дать, а то копирайт прижат к низу.
    Ответ написан
    Комментировать
  • В каком виде верстальщик сдает работу?

    rework
    @rework
    Помог ответ? В благодарность отметь его решением
    Всё верно говорите html + сss + img + js. Вместо img обычно идёт assets, так как кроме картинок обычно подключаются шрифты, и бывает в вёрстке используются видео или аудио файлы. Вместо css иногда используют less или sass и т.п., а так же иногда используют сборку файлов для оптимизации, тогда вам так же необходимо предоставить package.json для развёртывания необходимых зависимостей и правильно настроенные конфиги сборщиков (gulp или др.). Хорошим тоном в таких случаях является то, если вы предоставите инструкцию по развёртыванию UI (README.md)
    Ответ написан
    Комментировать
  • Компиляция LESS через less.js?

    paulradzkov
    @paulradzkov
    Дизайнер, верстальщик, начальник отдела UI
    Если ваш файл открыт по протоколу file:// (просто открыли файл из проводника), то LESS.js таким образом компилироваться не будет. LESS.js хочет HTTP-сервер.

    Как поднять HTTP-сервер из любой папки:
    1. Установить Node.js https://nodejs.org/
    2. Установить HTTP-сервер: в любой папке открыть консоль Windows и выполнить npm install http-server -g
    3. Запустить сервер: в папке с вашими html-файлами открыть консоль Windows и выполнить http-server
    4. В консоли будет написано, на каком порту у вас веб-сервер. Скорее всего это будет localhost:8080

    Теперь LESS будет компилироваться на клиенте.
    Ответ написан
    4 комментария
  • Почему принято навигацию по сайту верстать списком?

    @mletov
    Для современных браузеров с технической точки зрения - вообще без разницы.
    Можете написать хоть
    <mymenu>
    <menuitem><a href = "#">111</a></menuitem>
    <menuitem><a href = "#">222</a></menuitem>
    </mymenu>


    НО
    1. Поисковики приветствуют, чтобы семантика была строгой, а код, по возможности, валидным.
    2. ul li достаточно удобен для описания меню с большой вложенностью
    3. Другим разработчикам будет проще разбираться

    По сути, так подумать, очень многое в HTML5 носит не технический, а исключительно идеологический характер. Все эти header, footer, section, article...
    Ответ написан
    Комментировать
  • Почему принято навигацию по сайту верстать списком?

    MaryT
    @MaryT
    IT люблю
    Вы можете сделать абсолютно все дивами, но это будет семантически неправильное решение. Вот даже логически если порассуждать:
    меню — это перечень ссылок.
    Перечень - какой-то список.
    В итоге у нас получится семантически правильный код
    Тыц
    Ответ написан
    Комментировать
  • Как сделать квадратный, резиновый div?

    @bogdan0083
    Комментировать