aldtimofeev
@aldtimofeev
front-end / html-верстальщик

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

Как сделать, чтобы при наведении мышкой на элемент, его цвет менялся случайным образом каждый раз?
  • Вопрос задан
  • 425 просмотров
Решения вопроса 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;
}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы