• Может ли быть part-time программист?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Если речь идет непосредственно о работе, когда вам платят денюжку - то без проблем. Я год по удаленке работал по 10-20 часов в неделю. Но делал я так потому, что почти все остальное время я штудировал интернеты и пилил демки , то есть вкладывался в свое будущее.
    Если же вы хотите уделять программированию на этапе развития жалкие 20-25 часов в неделю, то вам скорее всего ничего не светит (или же ваш рост будет ужасно медленным и неэффективным).
    Ответ написан
    Комментировать
  • Как вы делаете адаптивные SVG элементы?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Адаптивными svg элементы делаются с помощью атрибутов viewBox и preserveAspectRatio.
    Выбираете какой-нибудь удобное вам разрешение, например 1600*1080, хардкодите внутри этого svg элементы polygon с координатами, чтобы все получилось как надо. Потом собственно ставите viewBox="0 0 1600 1080" и ваш svg элемент начинает адекватно тянуться под любые разрешения.
    После этого выставляете второй аттрибут, допустим в значение preserveAspectRatio="xMidYMid slice" (другие варианты сами изучите). Он будет отвечать за то, чтобы ваш свг смотрелся нормально при нестандартных разрешениях, на квадратных мониторах и прочих странных моментах.
    Захардкодить координаты двух простых полигонов - элементарное дело. Я вообще от безделья сложные арки и дуги хардкожу, так сказать увлекаюсь "рисованием циферками", ибо боженька не одарил меня навыками обычного рисования :)
    Ответ написан
    Комментировать
  • Почему backface-visibility: hidden фиксит блики в хроме?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Итак, постараюсь ответить, пускай и топорно.
    Конкретно причину возникновения багов с position: fixed при скролле я не знаю, хотя с ним и сталкивался частенько (но думается мне, что хром при скролле заново отрисовывает фиксированный элемент).
    А фиксится он с помощью backface-visibility: hidden потому, что когда вы применяете к элементам свойства opacity/transform (и то что относится к трансформам, собственно backface-visibility), то браузер создает для этих элементов отдельный слой ?лэйаута? (не уверен в том, конкретно слой чего создается). И благодаря этому браузер не перерисовывает элемент заново при каждом скролл-ивенте (что убирает эффект моргания в хроме).
    Ответ написан
    1 комментарий
  • Как сделать сложную маскировку части изображения?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Используйте svg. Если конкретнее, то svg path. Описываете по координатам по определенному разрешению, устанавливаете заливку (fill), ставите правильный viewBox чтобы смотрелось как надо на разных разрешениях и в общем то все.
    Элементы с текстом естественно делаются дивами и другими стандартными dom-элементами и абсолютно позиционируются на странице. То есть svg у вас будет отвечать только за эти нестандартые формы, хотя можно и текст на нем сделать (но по макетам не заметно, что требуется svg textPath).
    Ответ написан
    Комментировать
  • Какие хардкорные книги по JavaScript можно почитать?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Хочется хардкора - читайте статьи в интернетах. Книги это больше про структурированную информацию и закрепление знаний. По крайней мере сколько я не начинал читать js-книг для "профессионалов/ниндзя/магистров" везде меня ждали одни и те же вещи, либо что-то устаревшее. А вот в интернетах непаханое поле из хардкорных статей и демок. Искать их правда не так просто, обычно такие вещи попадаются случайно.
    Ну и если вы прям совсем-совсем хардкора ищите, то вам на гитхаб, читать исходники крутых и известных библиотек/фреймворков. Например в исходниках монструозного ангуляра можно найти много всяких фишек и крутых решений (речь именно об отдельных частях).
    Update: ну и если вам обязательно нужна книга (читать в метро или на диване), то могу посоветовать как минимум одну - Async Javascript (www.amazon.com/Async-JavaScript-Responsive-Pragmat...)
    Скажу честно, я её даже не осилил до конца, у меня в какой-то момент мозг расплавился от асинхронности :) Хотя пробовал я её еще более зеленым, надо бы дочитать сейчас.
    Ответ написан
    1 комментарий
  • Анимация при удалении класса jquery?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Какие то ужасные советы выше перечислены, не советую вообще использовать стандартные методы jQuery для анимации.
    В вашем случае анимация при убирании класса не срабатывает, ибо собственно она привязана к этому классу. Вам необходимо задать свойство transition для самого элемента .panel
    .panel {
      transition: transform 0.7s;
    }
    Ответ написан
    2 комментария
  • Как получить массив случайных чисел, сумма которых равна 500?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    На ночь гляда я накидал такой рандомный говнокод, но суть вы думаю поймете
    function random500() {
      var n1 = Math.ceil(Math.random()*499);
      var n2 = Math.ceil(Math.random()*(500-n1));
      var n3 = 500 - n1 - n2;
      console.log(n1 + " " + n2 + " " + n3);
    }

    Можете прямо в консоле f12 погонять. Потолок в 499 для первого числа соответственно чтобы случайно не попалось 500, тогда остальные два (или сколько вам надо) будут равны нулю. По идее надо заменить на 500, но это уже сами думайте.
    Ответ написан
  • Где и какие есть актуальные ресурсы для front-end?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    1) tympanus.net/codrops (как указали в другом ответе)
    2) habrahabr.ru/posts/frontend - нувыпоняли.
    3) Подписаться и еженедельно читать фронт-енд дайджесты (ну или просто зайти на сайт и читать там выпуски):
    a) javascriptweekly.com
    b) css-weekly.com
    c) tympanus.net/codrops/collective
    d) habrahabr.ru/company/zfort - у них самые большие дайджесты, там до кучи еще и дизайн/новости/крутые сайты и прочее.
    (соответственно ссылки во всех этих дайджестах часто повторяются, так что не пугайтесь объемам)
    4) codepen.io - тут смотрите код, вдохновляетесь чужими работами и пилите свои.
    5) Лезете в твиттер, подписываетесь на крутых разработчиков, там тоже проскакивает много годноты.
    Ответ написан
    Комментировать
  • Объясните коротко, по делу что же лучше/производительнее/удобнее и в каких ситуациях?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Давно приучил себя к следующей структуре:
    $(document).on("%eventType1% %eventType2% %eventTypeN%", "%classSelector1%, %classSelectorN", function() {
      //code
    });
    // ну и соответственно исключения для window вида $(window).on("resize", function(){});

    Про всякие микрооптимизации ради невызова 1-2 функций забудьте, в любом случае все эти операции под капотом слишком незначительны в сравнении с прожорливостью манипуляций с самим DOM'ом.
    Лучше абсолютно всегда делать все через делегирование ивентов, чем один раз забыть и сидеть потом час ломать себе мозг "а почему не работает" (с динамически добавленными элементами).
    Ответ написан
    Комментировать
  • Как сделать, что высота DIV подстраивалась по высоту экрана?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    1) Viewport единицы. В данном случае 100vh. Поддержка вот такая caniuse.com/#search=viewport
    2) Если ваш див не находится где то глубоко в разметке, а лежит прямо в body (или глобальном контейнере), то можно сделать вот так:
    html, body {
      height: 100%;
    }
    .container { // если имеется
      height: 100%;
    }
    .block {
      height: 100%;
    }

    Так как мы не задаем overflow: hidden для body или контейнера, то с ними ничего плохого не произойдет, контент по прежнему будет адекватно отображаться и скроллится.
    Ответ написан
    Комментировать
  • Какой базовый набор знаний для frontend developmenta?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Лучше на достаточно хорошем уровне изучить html+css+js (ваниллу+jQuery) и только потом смотреть в сторону фреймворков. Фрейморвки конечно вещь крутая, но их слишком много (или они слишком громоздкие). Отличные познания в js, и фронтенде в целом, не денутся никуда, а вот знания полученные от изучения особенностей и внутренностей какого-нибудь монструозного ангуляра могут с легкостью превратиться в тыкву с выходом, допустим, второй его версии (не все конечно, но большая часть). Все таки фреймворки это вещи уже под конкретные задачи, и они чаще всего рассчитаны на команды.
    Ответ написан
    3 комментария
  • Как скрытие и появление блока div?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Для инпута надо навесить ивент blur, который будет прятать блок. blur это ивент, который срабатывает когда элемент теряет фокус (то есть если был выделен инпут, и юзер кликнул не по инпуту, то сработает blur ивент).
    document.querySelector("#input").addEventListener("blur", function() {
      // спрятать блок
    }, false);
    Ответ написан
    3 комментария
  • Как называется такая прокрутка контента?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Обычно это называется "One page scroll"
    Если вы прям совсем ленивы, и вам только плагины подавай, то вот первые ссылки из гугла www.thepetedesign.com/demos/onepage_scroll_demo.html и alvarotrigo.com/fullPage (второй плагин выглядит покруче и свежее)
    Если же хочется посмотреть изнутри, то вот несколько простых (и не очень) моих демок (люблю эту технику :) )
    codepen.io/suez/pen/JoWKKX
    codepen.io/suez/pen/LCHlA
    codepen.io/suez/pen/ogYpva
    codepen.io/suez/pen/bNdbww
    Основа техники - каждая страница обычно занимает 100% высоты экрана + вы хакаете скролл, и вместо стандартного перемещения на 100 пикселей вниз/вверх вы скроллите целиком высоту одного блока.
    Ответ написан
    Комментировать
  • Как научиться программировать, если доступен лишь браузер?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Ну тут сам бог велел изучать html+js+css и пилить штуки на codepen.io
    Там же можно смотреть чужие работы и модифицировать, как по мне дак это крайне простой и приятный способ для старта, ибо все будет наглядно (поменял пару циферок в чужой демке и тут же все изменилось без рефреша!)
    Ну и параллельно с этим будешь читать статьи и книги для превращения в нормального специалиста, а не говнокодера.
    Ответ написан
    Комментировать
  • Как постепенно выполнять действия, а потом всё повторять?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Варианта два:
    1) Добавлять ко всем блокам классы одновременно, и ставить для каждого класса свою задержку на transition. Пример:
    .block-1.active {transition: height %time%;}
    .block-2.active {transition: height %time% 500;}
    .block-3.active {transition: height %time% 900;}
    .block-4.active {transition: height %time% 1200;}
    /* как вариант, transition: %property% %time% можно задать для всех одно, а по отдельности менять только свойство transition-delay, если вам так удобнее будет */

    Если вам при снятии класса требуется, чтобы анимация всех блоков произошла одновременно, то для их общего класса (ну или для каждого по отдельности) пишите просто что-нибудь такое:
    .block {transition: height %time% 0;}
    В итоге если класс active у блока есть, его анимация стартует с задержкой (первая после свойства это время исполнения, а вторая это задержка). Если класса .active нету, то и задержки не будет.
    2) Второй вариант предполагает использование setTimeout(){function() {%действие%}, %delay%) для каждого действия с делеем. Если положить таймаут внутрь другого, то его время сложится с родителем (то есть его таймаут стартнет только когда "выстрелит" таймаут родителя).

    Ну и для цикличности все это дело надо просто упаковать в setInterval.
    Ответ написан
    5 комментариев
  • Отправка сообщения с инпута после нажатия enter?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Оба инпута должны лежать внутри формы. Задаешь форме id или class и пишешь что-нибудь такое
    $(".formClass").on("submit", function() {
      // действия
      return false; // отменяет перезагрузку страницы при стандартном поведении формы
    });
    Ответ написан
    Комментировать
  • Можно ли сделать красивый дизайн сайта без PSD шаблона?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Есть разница между "красивый сайт" и "эффективный сайт". Можно без проблем сделать что-то красивое и крутое без макета, но скорее всего получится какой-то странный "эксперимент". В этом плане танцы вокруг макета со всякими "а подвиньте вот это на два пикселя вправо" дают куда больше эффективности. Но если вы делаете не какой-нибудь интернет магазин, а например сайт-портфолио, то я думаю вообще проблем возникнуть не должно. Как вариант, можно вначале сделать 80-90% работы, а потом попросить помощи у знакомых дизайнеров с цветовой палитрой и фидбеком в целом.
    Ответ написан
    Комментировать
  • Какие инструменты/программы Вы используете при написании сайта?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Весь фронтенд, который не надо разделять на модули (аля SPA сайт) пилю в codepen.io
    Крайне удобная штука. Выбор препроцессоров на лету (с возможностью посмотреть скомпиленное по клику через долю секунды), подключение библиотек, всяких автопрефиксеров и прочего несколькими кликами. + к этому прибавляем возможность все это дело форкать до потери пульса, моментальный шеринг с коллегами/друзьями ("народ, гляньте какую штуку я сделал") и социальный аспект (сделал что-то крутое, твой пен попал на главную, ты получаешь сердечки и жизнь становится чуточку приятнее). Ну и там же можно ползать и смотреть чужие мегакрутые работы и вдохновляться/учиться + тут же форкать их работы и допиливать по усмотрению.
    Ответ написан
    Комментировать
  • Как сделать двухстороннюю кнопку?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Вот простой и доступный гайд davidwalsh.name/css-flip (и живой пример davidwalsh.name/demo/css-flip.php)
    Если вы не можете в английский, то схема такова:
    1) Создаете элемент, в которой кладете 2 элемента, один будет лицом, другой "задом". Лицо просто встает как есть, а задняя сторона ставится с помощью с помощью position: absolute; top: 0; left: 0;
    Обоим элементам задается 100% длины и высоты, backface-visibility: hidden и transition: transform %time%s;
    2) Задней стороне даем transform: rotateY(180deg);
    3) Назначаем на :hover родителя переворот обоих элементов по оси Y на -180 градусов. То есть передняя сторона станет transform: rotateY(-180deg); а задняя 0deg
    4) И в конце добавляем родительскому элементу perspective: %число% (например 1000) для создания эффекта объема.
    codepen.io/suez/pen/696e4a5351f1bf1428cc9e0e17285b... - примитивная демка на кодпене.
    Ответ написан
    Комментировать
  • Где вы берёте шрифты для сайта?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    habrahabr.ru/post/250621 - в разделе бесплатная типографика.
    habrahabr.ru/post/247785 - неплохая подборка, есть несколько приятных шрифтов.
    Поиск по всяким Behance и другим сайтам с тегом Typeface.
    Ну и конечно же взять и посмотреть интересующий тебя шрифт прям на каком-нибудь сайте и поискать его. Только не воруй, не все шрифты можно юзать "просто так".
    Ответ написан
    2 комментария