Тег: работа

Заменяем аватар на цветной кружок с буквой с помощью JavaScript

Новый тренд в дизайне - милые цветные кружочки (квадратики) различного цвета с первой или двумя первыми буквами имени. Так сейчас делают все: браузер Сафари, почтовые клиенты, социальные сети.

Здесь я покажу как это сделать с помощью JavaScript. Главный вопрос – подбор цвета?

Цвет мы будет генерировать из строки с именем. На самом деле подойдет абсолютно любая строка, но так как и букву мы берем из имени, то и цвет будет генерировать из него же.

Вот так будет выглядеть наш HTML:

<div class="user-info">
    <div class="user-info-avatar" id="avatar"></div>
    <div class="user-info-name" id="name"></div>
</div>

Добавим немного CSS-стилей:

.user-info-avatar {
    display: inline-block;
    width: 30px;
    height: 30px;
    line-height: 30px;
    border-radius: 15px;
    text-align: center;
    margin-right: 10px;
    color: white;
}
.user-info-name {
    display: inline-block;
}

А теперь JavaScript:

var stringToColor = function stringToColor(str) {
    var hash = 0;
    var color = '#';
    var i;
    var value;
    var strLength;

    if(!str) {
        return color + '333333';
    }

    strLength = str.length;

    for (i = 0; i < strLength; i++) {
        hash = str.charCodeAt(i) + ((hash << 5) - hash);
    }

    for (i = 0; i < 3; i++) {
        value = (hash >> (i * 8)) & 0xFF;
        color += ('00' + value.toString(16)).substr(-2);
    }

    return color;
};

var name = 'Михаил';
var letter = name.substr(0, 1);
var backgroundColor = stringToColor(name);
var elementAvatar = document.getElementById('avatar');
var elementName = document.getElementById('name');

elementName.innerHTML = name;
elementAvatar.innerHTML = letter;
elementAvatar.style.backgroundColor = backgroundColor;

За генерирование цвета отвечает функция stringToColor. Она принимает строку с именем (любую строку), переводит ее в биты и уже из них в HEX-цвет. Если мы не передадим в функцию ничего, то получим в ответ цвет по умолчанию – в данном примере, #333333.

Вот таким нехитрым образом можно делать такое модное нынче оформление при отсутствии аватара.

02 июля 2015
14.2 тыс.
2 мин

HTML5 video и кнопка для AirPlay

Menu AirPlay

В грядущем обновлении Mac OS, с номером 10.11 и названием El Capitan, придет и новая версия браузера Safari – 9.0.

Список нововведений не слишком чтобы внушительный, но интересные вещи там присутствуют. Одна из них – возможность добавить кнопку airplay в любое видео, вставленное с помощью тега video.

17 июня 2015
10.5 тыс.
7 мин

Переезд в Нидерланды. Один обычный рабочий день

Обычно я встаю с будильником в 6:30. Но в этот четверг мне было как-то лень, посему проснулся ближе к 8 утра. Каждый день я прихожу на работу около 9. Поэтому ранние подъемы дают мне возможность принять душ, позавтракать и неспеша двинуться в офис. Дорога до офиса занимает от 30 до 40 минут, в зависимости от выбранного маршрута и стыковок общественного транспорта. Такой вот поздний подъём лишил меня душа и нормального завтрака.

13 мая 2015
6.4 тыс.
4 мин

Переезд в Нидерланды. Город и туристы

К Амстердаму можно относиться по-разному. Кто-то его любит, кто-то нет. Попробую высказать своё мнение по этому поводу.

Начну с того, что город совершенно небольшой. Здесь официально проживает порядка 830 тысяч человек. Если сравнивать его территорию с Минском, то кажется, что весь Амстердам — это спальный район белорусской столицы. Добраться до центра из любого уголка можно за 15-20 минут.

29 апреля 2015
4 тыс.
6 мин

Переезд в Нидерланды. Жилье и русский язык

Жилье

Амстердам очень популярное место для переезда не только среди иностранцев, но и внутри страны. По этой причине сюда постоянно прибывают все новые и новые жильцы, что вызывает некоторую суматоху на рынке аренды жилья.

Этот вопрос – единственный, который не сомнении меня волнует. Я уже три недели в Нидерландах, но особо не продвинулся в поисках постоянного места жизни.

Здесь есть два варианты аренды: у частного лица и у компании застройщика. У обоих есть как плюсы так и минусы.

21 апреля 2015
7.5 тыс.
6 мин

Переезд в Нидерланды. Первые дни

Мой первый рабочий день должен был быть 1-го апреля. Естественно мне необходимы были несколько дней для адаптации в новой обстановке. По сей причине билет в Амстердам я купил на утро 30 марта. Имея последний день марта в наличии, я договорился о встрече в Экспатцентре и в банке. Экспатцентр занимается выдачей ID (паспорт местный) и регистрации в органах муниципальной власти.

11 апреля 2015
4.6 тыс.
4 мин

Переезд в Нидерланды. Начало

Конец 2014 года стал очень важным временем в экономической жизни России. Разного рода санкции и дешевеющая нефть поставили российский рубль на колени. Следом за ним в пучину грянул и рубль белорусский.

Меня это вообще никак не беспокоило, пока в один прекрасный момент руководство страны не ввело 30% налог на покупку валюты. Если кто не знает, у нас, несмотря на зарплату привязанную к доллару (как было у меня), получать ее я можно только в белорусских рублях. Я как порядочный гражданин своей страны все деньги хранил в долларах. Тут-то я прикинул, что на свою зарплату я теперь могу купить на 30 процентов меньше валюты.

Естественно я незамедлительно отреагировал на это психологически. В это же время (в 20-х числах декабря) я получил письмо из Лондона с вакансией в Амстердаме. Мою неустойчивое психологическое состояние не позволило мне трезво оценить это предложение, и я согласился попробовать.

04 апреля 2015
4.8 тыс.
5 мин

CSS стилизация checkbox и radio для мобильных устройств

Сделать чекбоксы input[type="checkbox"] и радиокнопки input[type="radio"] красивыми – задача не сложная. Однако, чаще всего, за этим следует добавление новых элементов, а следовательно и усложнение DOM-структуры документа.

Для современных мобильных браузеров, а также декстопных браузеров на основе WebKit и Blink (Chrome, Opera, Vivaldi и т.д.), для некоторых типов инпутов можо создавать псевдо-элементы after и before.

06 февраля 2015
7.1 тыс.
3 мин

Placeholder с поведением в стиле Material Design

Кто видел Material Design от Google, тот знает, что там есть довольно забавное поведение placeholder-а для поля ввода. Я решил попробовать сделать такое на CSS, но столкнулся с некоторыми проблемами (легко решаются с JavaScript).

Давайте посмотрим, что у меня получилось – ДЕМО.

04 февраля 2015
6.4 тыс.
2 мин

Переосмысление отзывчивого SVG

Отличная статья Ильи Пухальского:

Если вы ещё не знакомы с техникой отзывчивых иконок Джо Харрисона, то, скорее всего, будете впечатлены так же сильно, как и я, когда впервые открыл её для себя. В этой статье я бы хотел исследовать, что мы можем делать с SVG, кроме традиционной практики замены PNG. В частности, мы можем рассматривать SVG как независимый модуль, который включает в себя CSS для кастомизации вариантов отображения; также как и правила для отзывчивого поведения, SVG может содержать в себе JavaScript для логики взаимодействий. Теперь давайте рассмотрим эту технику детальнее.

31 января 2015
5.6 тыс.
12 мин