Страницы

четверг, 25 июля 2013 г.

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 на Андроиде;
  • пользовательские теги в различных приложениях (почте, соц.сетях и проч.);
  • и проч.