我对Javascripting相对较新,我知道有这个技术的答案,但是我无处可以得到所有的部分。
在网页上,我创建了一个10 x 10的网格,其中包含100个相同大小的单个div。 当任何div被鼠标悬停时,我希望它显示随机背景颜色(鼠标悬停在div上,将显示不同颜色的div的踪迹)。
在任何给定的div中,以这种方式激活函数“fnPickColor”(创建颜色):
onmouseover ="fnPickColor()"
我的问题是:生成颜色后,我不知道如何将它放入调用该函数的单个div中。我不能使用“getElementById”或基于标签的引用,因为它们引用特定的单个div或它们的组,而不是当前正在被moused-over的任何div。
我尝试使用“this.style.backgroundColor”构造一个构造来传递颜色,但失败了。
我确信它非常简单 - 这是怎么做到的?
答案 0 :(得分:0)
onmouseover = fnPickColor(this)
然后在函数内部使用
this.style
编辑当我没有时间详细说明时,我不应该在昨天试着回答。我想的是更像大卫建议的东西。
我忘记了引号
onouseover = "fnPickColor(this)"
我应该澄清你需要在像这样的函数中接受这个
function fnPickColor(what) {
what.style.background = <YOUR RANDOM GENERATED COLOR>
}
你表示你已经有了获得颜色的代码。
答案 1 :(得分:0)
<强> CSS:强>
.slider {
width: 300px;
height: 300px;
border: 2px black solid;
cursor:pointer;
transition: all 0.75s ease-in-out;
}
<强> HTML:强>
div class="slider" data-bind="style:{'background-color':color}, event:{mouseover:changeColor}"></div>
<强> JavaScript的:强>
$(function () {
var attr = {
color: ko.observable("azure"),
changeColor: changeColor
};
function changeColor() {
attr.color("#" + (Math.random() * 0xFFFFFF<<0).toString(16));
toastr.info(attr.color());
}
ko.applyBindings(attr);
})();
<强>演示:强>
点击: http://jsfiddle.net/samuelbigas/JZ4UX/2/
答案 2 :(得分:0)
HTML:
<div onmouseover="randomColor(this)"></div>
使用Javascript:
randomColor = function(e) {
e.style.background = "#" + (Math.random() * 0xFFFFFF<<0).toString(16);
}
答案 3 :(得分:0)
function rg(m, n) {
return Math.floor( Math.random() * (n - m + 1) ) + m;
}
function hex(i) {
return i.toString(16);
}
function randColor() {
return '#' + hex(rg(1, 15)) + hex(rg(1, 15)) + hex(rg(1, 15)) +
hex(rg(1, 15)) + hex(rg(1, 15)) + hex(rg(1, 15));
}
$(".subContent").mouseover(function() {
$(this).css("background-color",randColor());
});
我已创建它的部分,以便您可以重复使用它。希望你会受益。 http://jsfiddle.net/user007/yK7kq/1/
答案 4 :(得分:0)
以下是一个很好的例子:Random Color Generator
function getRandomColor() {
var letters = '0123456789ABCDEF';
var color = '#';
for (var i = 0; i < 6; i++ ) {
color += letters[Math.floor(Math.random() * 16)];
}
return color;
}
var div = document.getElementById( 'colorchange' );
div.onmouseover = function() {
this.style.backgroundColor = getRandomColor();
var h2s = this.getElementsByTagName( 'div' );
var text = document.getElementById('text');
};
div.onmouseout = function() {
this.style.backgroundColor = 'transparent';
var h2s = this.getElementsByTagName( 'h2' );
};