Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиПоискОблакоVK ComboВсе проекты

Тут ниже просили сделать строку с разноцветными буквами. Ну, пожалуйте, сделал. Но кошерно ли данное решение?

Молот Шотландцев Высший разум (285237), на голосовании 2 недели назад
Если нужно было взять готовую строку со страницы и задать ей случайный цвет для каждой буквы, а не целиком для строки - этого кавалеристким наскоком сделать не получилось...
Как это можно сделать?
Дополнен 1 месяц назад
Функцию конечно лучше вынести из цикла...

Голосование за лучший ответ
Игрок Мудрец (19261) 1 месяц назад
Не плохо вышло, молодец
партнер [www.a77r.ru] Гуру (3279) 1 месяц назад
Задача выходила тут дважды, более ранний вариант:
"Нужно сделать ввод с клавиатуры и чтобы каждая буква вводилась разными цветами.
Сказали можно просто присвоить каждой букве свой цвет, но я не знаю как сделать."

и мне думается, что это более гармоничное задание, когда каждая буква имеет свой цвет, а не получает его рандомно...
Саня Семенов Оракул (55083) 1 месяц назад
Кинь текстом поправлю а так лень перепечатывать
Саня Соловьев Гуру (2601) 1 месяц назад
Тут еще зависит от того, откуда исходная строка берется, если она берется с input, то просто при событии oninput можно брать один последний символ, давать ему цвет и плюсовать в абзац, например element.insertAdjacentHTML("beforeend", "тут HTML"). Если будет переменная с готовым текстом, то тут немного по другому.

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

Интересная задачка в принципе)) Надо попробовать.

P.S. - об insertAdjacentHTML только сейчас узнал)), решил просто поискать, можно ли как то обойтись без полной замены содержимого, как в случае innerHTML, и без createElement.
Саня СоловьевГуру (2601) 1 месяц назад
Еще маленкий лайвхак, как быстро наюзать 164 цвета для массива. Переходим сюда - , вставляем код:
let q = document.querySelectorAll('td.dt');
let col = '';
for (let i = 0; i < q.length; i++) {
col += "'"+q[i].outerText+"',";
}
и получаем список)). Можно ограничиться 32-мя
Саня СоловьевГуру (2601) 1 месяц назад
"Переходим сюда" забыл - https ://colorscheme.ru/html-colors.html. Такой вот код получился. Много чего стоит проверять на момент ввода, типа пробела, удаление символа и т.п. Но в целом принцип работы такой вот. Молот красавчик)) забавно получилось
Похожие вопросы