Задать вопрос

Как сделать, чтобы при наведении мышкой на элемент, его цвет менялся случайным образом каждый раз?

Как сделать, чтобы при наведении мышкой на элемент, его цвет менялся случайным образом каждый раз?
  • Вопрос задан
  • 445 просмотров
Подписаться 1 Оценить 3 комментария
Помогут разобраться в теме Все курсы
  • Skillbox
    JavaScript
    3 месяца
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик расширенный
    13 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
Решения вопроса 3
sergiks
@sergiks Куратор тега JavaScript
♬♬
Функция, меняющая цвет, всего в две строчки:
var randomColor = function(e){
  var r = () => Math.round(Math.random()*255);
  e.target.style.color = "rgb(" + [r(),r(),r()].join(',') + ")";
}


С jQuery её повесить, например, на заголовок вопроса тут:
$('H1.question__title').on('mouseover', randomColor);

Или на чистом JavaScript:
document.querySelector('h1.question__title')
  .addEventListener('mouseover', randomColor);
Ответ написан
Комментировать
@Bhudh
Только на днях для детишек развлекалку писал.
function pad(n){
	return n.length<2?'0'+n:n;
}
function rndHex(){
	var base = 16,
		resultNum = Math.floor(Math.random()*base*base).toString(base);
	return pad(resultNum);
}
function rndHexColor(){
	return'#'+rndHex()+rndHex()+rndHex();
}
function changeColor(){
	this .style.backgroundColor=rndHexColor();
}

document.getElementById('ID_of_element').addEventListener('mouseenter', changeColor);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@skepsikmod
Ну можно так. Вернет строку в hex. Вешаете на hover к элементу
function getColor() {
var letters = '0123456789ABCDEF'.split('');
var color = '#';
for (var i = 0; i < 6; i++ ) {
color += letters[Math.round(Math.random() * 15)];
}
return color;
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы