Hack-week-2, random color.

Никогда не знаешь заранее, что может пригодиться.
Когда-то давно попался на глаза небольшой скрипт, генерирующий "рандомный" цвет, соответствующий заданной строке:

var stringToColour = function(str) {
  var hash = 0;
 

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

  var colour = '#';
 

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

  return colour;
}

$('body').css('background-color', stringToColour("my string"));


Казалось бы, просто прикольный код. Но гораздо интереснее когда и как его можно было бы применить. Поскольку цвет задается рандомно, но в то же время он постоянен для определенной строки, его можно было бы использовать для:
  • раскрашивания карты, например, у нас есть карта Европы в виде символьного шрифта;
  • раскрашивания графиков, где название секции/столбика так же уникально;
  • в чате выделение имени пользователя;
  • задание фона на месте аватарки у пользователя без аватарки, как это сделано в Google mail на Андроиде;
  • пользовательские теги в различных приложениях (почте, соц.сетях и проч.);
  • и проч.

Комментарии

Популярные сообщения из этого блога

Стайлгайд и компонентная разработка

Прогноз погоды в консоли

Вендорные префиксы