• Как повесить событие на клик google analytics?

    AntonKravchenko
    @AntonKravchenko
    onclick="yaCounterXXXXXXXX.reachGoal('CRM4TENDERS_FORM');ga('send', 'event', 'FORM', 'CRM4TENDERS_FORM');return true;"

    пример работающего кода, который подтверждает цели и в Я.М и в G.A
    Ответ написан
    Комментировать
  • Как дебажить верстку под мобильный Safary без мака и виртуалки?

    mahnunchik
    @mahnunchik
    https://about.me/vlasenko
    Все, или почти все браузеры/оси/девайсы есть тут https://www.browserstack.com
    Ответ написан
    Комментировать
  • Как вы создаёте адаптивный дизайн и всегда ли это нужно?

    aliencash
    @aliencash
    Партизан
    Я уже давно понял, что лучше сразу делать адаптивно. Иначе потом все равно переделывать придется. Контейнер у меня выглядит так:
    .container {
    width: 100%;
    max-width: 1200px;
    min-width: 320px;
    margin: 0 auto;
    }

    Причем стараюсь делать все резиново. Если такой возможности нет - медиазапросы.
    Ответ написан
    Комментировать
  • Как вы создаёте адаптивный дизайн и всегда ли это нужно?

    SuperMax899
    @SuperMax899
    лучшее "спасибо" - кнопка "решение вопроса"
    На абстрактный ответ мог бы ответить абстрактно, но отвечу с вариантами.
    В зависимости от задачи, я опишу не для сервисов или больших сайтов\ресурсов.
    Советую так же прочесть вот эту статью: frontender.info/building-a-better-responsive-website

    Обычно использую bootstrap, который дополняю своими стилями, к примеру, сразу удаляю\перекрываю .row с его -15px margin'ом по сторонам, добавляю класс padding-0 для убирания в некоторых блоках padding'a у col- (который стандартно по 15px).

    Стандартно учитываю разрешения - HD, ноутбучное 1366 и свое чуть меньше 1366 (у меня пуск справа:) ), 1024-960 - старые мониторы и нетбуки, смотрю в диапазоне 768px-960 для некоторых планшетов и телефонов, и меньше 768 для телефонов. Тут дизайн один, через media onlyscreen убираем с загрузки ненужные части.
    Если все сверстано правильно и добавлены везде классы, то сайт будет полностью адаптивным.
    Для тестов меньше 768px проверяю через iphone 5 и старенький android-телефон. (Через Toggle Device mode в Google Chrome получаешь очень сильно разительные результаты в сравнении с устройством - браузеры то другие, хотя большие косяки всплывают сразу.)
    Тут кстати еще (мобильная) кросс-браузерность очень тонкий вопрос. Стиль у каждого браузера свой, особенно у всяких элементов типа input, так что тоже требует проверки и состояний тоже (placeholder, цвет текста в поле).

    Нужно ли это? Безусловно - на любом сайте, в любой отрасли половина трафика с мобильных устройств, это уже стандарт качества, на мой взгляд:)
    Ответ написан
    2 комментария
  • Какой лучший способ для создания мобильной версии сайта?

    Лучшего способа нет. Всё зависит от проекта, его задач, аудитории. Ресурсов, которыми располагает проект.

    Не путайте отдельную "лайт-версию" сайта для мобильных (m.example.com) и просто адаптивный сайт.

    Так же есть более сложные варианты, использующие как адаптивность основного шаблона, так и рендеринг разных шаблонов в зависимости от устройства.
    Почитайте вот эту стать. например: frontender.info/building-a-better-responsive-website
    Ответ написан
    1 комментарий
  • Как закрывать выпадающее меню при клике вне его самого?

    @everdimension
    Использовать e.stopPropagation() — плохая идея. Читайте

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

    Появляется правильный вопрос, что делать, если кликнутый элемент — дочерний элемент меню? Для этого есть офигенный метод node.contains()

    Собственно, вся требуемая проверка получается совсем несложная — gist
    var el = document.getElementById('el');
    
    document.addEventListener('click', outsideEvtListener);
    
    function outsideEvtListener(evt) {
        if (evt.target === el || el.contains(evt.target)) {
            // клик внутри
            return;
        }
        // код для закрытия меню, например el.classList.add('hidden')
       
        // не забыть убрать слушатель событий (не для каждой имплементации требуется)
        document.removeEventListener(outsideEvtListener);
    }
    Ответ написан
    2 комментария
  • Как закрывать выпадающее меню при клике вне его самого?

    erniesto77
    @erniesto77
    oop, rb, py, php, js
    function clickOutside (el) {
    	$(document).on('click', function(event) {
    		event.stopPropagation();
    		if ($(event.target).is(el)) return;
    
    		console.log('Клик мимо меня');
    	});
    }
    
    upd:
    
    function clickOutside (selector) {
    	document.addEventListener('click', function (event) {
    		event.stopPropagation();
    		var el = document.querySelector(selector);
    		if (event.target === el) return;
    
    		console.log('Не попал =)');
    	});
    }
    
    upd:
    
    function findParentBySelector(elm, selector) {
        var all = document.querySelectorAll(selector);
        var cur = elm.parentNode;
        while(cur && !collectionHas(all, cur)) {
            cur = cur.parentNode;
        }
        return cur;
    }
    
    function clickOutside (selector) {
    	document.addEventListener('click', function (event) {
    		event.stopPropagation();
    		var el = document.querySelector(selector);
    		if (event.target == el) return;
    
        // Проверка на то что это дочерний элемент
        if (event.target == findParentBySelector(selector)) return;
    
    		console.log('Не попал =)');
    	});
    }
    Ответ написан
    8 комментариев
  • Как сделать такой эффект фона?

    zualex
    @zualex
    Senior Software Engineer
    Ответ написан
    Комментировать
  • Какими инструментами пользуются дизайнеры сайтов?

    tragische
    @tragische
    let me google this for you
    Без сарказма, бумага, карндаш, ножницы и клей даже иногда. Экономят кучу времени. Лично для меня интерфейс мозг → рука → карандаш самый быстрый и самый гибкий.

    А дальше уже зависит от команды. Если у всех Скетч, то Скетч. Если фронтенд под виндой сидит, то ФШ. Мне долго был мил иллюстратор, из-за векторности, но с появлением Скетча это прошло, хотя иконки в нём мне удобней рисовать до сих пор.
    Уже написали несколько раз про инвижн, он незаменим, особенно для арт-директорской работы и согласований. Ну и он как тудушка для графики отлично работает. Еще есть всякие https://webflow.com/, бывает очень удобно. Не всегда, не для всего, но когда что-то простое, вроде лендингов, то сильно укорачивает время разработки.

    По-факту рисовать всё равно в чём. Важно из чего ваш конкретный фронтэндер умеет/может извлекать информацию.
    Ответ написан
    Комментировать
  • Можно ли использовать чужой код?

    Два варианта:
    1. Лицензия на использование кода не указана. Тогда нужно связаться с автором кода и урегулировать вопрос об использовании его кода в своих целях. Иначе можете встретиться в суде.
    2. Указан тип лицензии. Тогда действуете строго по пунктам лицензии, иначе также рискуете. Если тип лицензии не удовлетворяет, то это также можно урегулировать с автором кода, договорившись о подходящей для вас обоих лицензии. Некоторые разработчики выпускают код под двойными лицензиями. Если у вас открытый код (даже если и коммерческий), то просто используете и открываете свой код тоже. А если хотите закрыть код, то платите автору отчисления за использование кода.
    Ответ написан
    Комментировать
  • Как сделать background чтоб на разных разрешениях картинка не обрезалась?

    Taraflex
    @Taraflex
    Ищу работу. Контакты в профиле.
    Пробовали background-size: cover; + выравнивание фона по центру ?
    Ответ написан
    Комментировать
  • Как сверстать картинку на картинке (адаптив)?

    @westdp
    Первая картинка бекграундом, вторая можешь сделать как написал Pavel Torbeev , но есть более универсальный подход, где не нужно знать размеры картинки:
    .center {
        position:absolute;
        top:50%;
        left:50%;
        -ms-transform: translate(-50%, -50%);
        -webkit-transform: translate(-50%, -50%);
        -moz-transform: translate(-50%, -50%);
        transform: translate(-50%, -50%); 
    }
    Ответ написан
    Комментировать
  • Чем сделать галерею из html-объектов(страниц)?

    Sadist07
    @Sadist07
    Верстальщик, Недо дизайнер
    Ответ написан
    Комментировать
  • Как работать с картинками на gulp.js?

    ivandata
    @ivandata
    Веб разработчик
    Попробую ответить.
    1. Растр в спрайты. Под ретину можно 2@
    2. Есть несколько способов хранить и использовать svg спрайты. SVG спрайт — это всего лишь файл где поиск по svg элементам происходит по id.
    <symbol viewBox="0 0 21 21" id="add_icon">
        <title>add</title>
        <path d="M10.5 1C5.3 1 1 5.2 1 10.5S5.3 20 10.5 20s9.5-4.3 9.5-9.5S15.7 1 10.5 1zm0 1c4.7 0 8.5 3.8 8.5 8.5S15.2 19 10.5 19 2 15.2 2 10.5 5.8 2 10.5 2zM10 6v4H6v1h4v4h1v-4h4v-1h-4V6h-1z"/>
    </symbol>

    На странице используем тег 'use', где атрибут xlink:href — это ссылка на svg, у с указанием идентификатора, например:
    <svg class="ico-svg">
      <use xlink:href="/ico/ico-set.svg#add_icon"></use>
    </svg>

    Для поддержки отсталых браузеров используем полифил https://github.com/jonathantneal/svg4everybody. Управляем цветом через свойство fill
    3. Элементы интерфейса, такие, как иконки, лучше конечно в векторе хранить. Растр — сжимать.
    4. Мелкие элементы в base64. habrahabr.ru/post/116538
    Все это собирается, пакуется и т.д. сборщиками, все верно.
    Для SVG у нас используется очень замороченая система, которая: собирает svg-файлы от дизайнеров, клеит из них спрайт, генерирует png спрайты в разных цветах и генерирует стили для них. А еще парсит превью всего этого на отдельной странице, для теста.
    Мы используем gulp и плагины для этого:
    https://www.npmjs.com/package/gulp-optipng
    https://www.npmjs.com/package/gulp-raster
    https://www.npmjs.com/package/gulp.spritesmith
    https://www.npmjs.com/package/gulp-svg-sprite-plus
    https://www.npmjs.com/package/gulp-imagemin

    Еще один способ от Владимира Кузнецова. У него все проще, потому что задач таких, как у нас не стояло.
    Ответ написан
  • Как сделать появление всплывающего меню с задержкой при наведении?

    darkkemper
    @darkkemper
    Programmer / Software Developer
    Как только на кнопку наведен курсор через setTimeout запускаем отсчет до появления меню, если курсор уведен с кнопки, то отменяем таймаут через clearTimeout.

    var timesArray = [];
    
    $('.menu').hover(
        function()
        {
            var id = jQuery.data(this);
            timesArray[id] = setTimeout(function() {
                //Показываем меню
                $(this).css({'display' :  'block'});
                timesArray[id] = "";
            }, 500);
        },
        function()
        {
            var id = jQuery.data(this);
            //Скрываем меню
            $(this).css({'display' :  'none'});
            if (timesArray[id])
            {
                clearTimeout(timesArray[id]);
            }
        }
    );


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

    Afganec
    @Afganec
    Аццкий кодер...
    Все ниже описанное сугубо ИМХО.
    Давать советы в такой ситуации не есть корректно. Мы не знаем всего, не знаем вашего уровня. Есть вероятность, что вы не все описали. Но... случись со мной подобная ситуация - ушел бы без раздумий. И дело здесь не в формате "начальник высказал недовольство", а в том, что он ставит вам ультиматум. Что уже есть звоночек - ничего адекватного ожидать не предвидится. Если уверены в себе - дерзайте. Дорога появляется под ногами идущего. Это раз. Второе - если вы примите решение уйти, вы покинете свою зону комфорта, а, как правило, именно за ее пределами совершаются чудеса. В3х - если вы примете решение остаться, то рискуете прикипеть к занимаемой вами должности. Чем дольше работаешь на одном месте, тем больше жалеешь время, которое уже потрачено, и тем сложнее принять решение об уходе.
    Тем более, если вы говорите, что есть средства на первое время, вообще не вижу проблем - дерзайте. Все будет хорошо!
    Ответ написан
    Комментировать
  • Вы создаете конструкторы форм?

    @djay
    Дописать несколько полей - будет менее затратным по времени и силам способом. А конструктор форм, если применять, то желательно еще с самого начала разработки.

    По поводу конструктора динамических форм, говорят что этот более-менее пригодный: metawidget.org

    И еще один - https://github.com/saymedia/angularjs-dynamic-form
    Ответ написан
    Комментировать
  • Как установить программу с linux на windows?

    lukoie
    @lukoie
    andLinux и coLinux - это два проекта, позволяющие запускать линуксовые программы в виндовсе прозрачно, так что даже не видно будет что это не виндовая программа.

    UPDATE для потомков: до полного счастья можно также ручками и напильником с cygwin (https://ru.wikipedia.org/wiki/Cygwin) потратить n времени, чтобы получить свое поделие подобного функционала но неизвестной степени корявости, а также поглядеть еще проект portable ubuntu remix: sourceforge.net/projects/portableubuntu
    Лично мне удобен andLinux, где немного повозившись можно и гномовые и кдешные приложения запускать(и GTK и Qt!).
    Ответ написан
    Комментировать
  • Плавное затухание фона без наведения мыши?

    var _this =$(this);
    setTimeout(function(){
    _this.removeClass('active_event');
    },1000);

    .description{transition: all 1s ease-in-out;}
    Ответ написан
    1 комментарий