Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 鼠标悬停在div网格上时的随机颜色变化_Javascript_Jquery - Fatal编程技术网

Javascript 鼠标悬停在div网格上时的随机颜色变化

Javascript 鼠标悬停在div网格上时的随机颜色变化,javascript,jquery,Javascript,Jquery,我试图找出如何使用mouseover函数将div的颜色更改为随机颜色,但是我无法找到一个明确的答案,即需要更改什么才能实现这一点。有什么想法吗?这是我的原稿 $(document).ready(function () { for (var i = 0; i <= 128; i++) { $('<div />', { 'class': 'sameDiv', 'id': 'div' + i })

我试图找出如何使用mouseover函数将div的颜色更改为随机颜色,但是我无法找到一个明确的答案,即需要更改什么才能实现这一点。有什么想法吗?这是我的原稿

$(document).ready(function () {
    for (var i = 0; i <= 128; i++) {
        $('<div />', {
            'class': 'sameDiv',
            'id': 'div' + i
        }).appendTo('body');
    }
});

$('.sameDiv').mouseover(function () {
    $(this).stop(true).fadeTo(200, Math.random());
}).mouseout(function () {
    $(this).fadeTo(200, Math.random());
});
$(文档).ready(函数(){

对于(var i=0;i我已编辑了您的小提琴。以下是解决方案:

$(document).ready(function () {
    for (var i = 0; i <= 128; i++) {
        $('<div />', {
            'class': 'cell',
                'id': 'div' + i
        }).appendTo('body');
    }
});

$('.cell').mouseover(function () {
    var randomColor = '#' + (function co(lor){   return (lor +=
  [0,1,2,3,4,5,6,7,8,9,'a','b','c','d','e','f'][Math.floor(Math.random()*16)])
  && (lor.length == 6) ?  lor : co(lor); })('');
    $(this).css("background-color", randomColor);
});
$(文档).ready(函数(){

对于(var i=0;i我已编辑了您的小提琴。以下是解决方案:

$(document).ready(function () {
    for (var i = 0; i <= 128; i++) {
        $('<div />', {
            'class': 'cell',
                'id': 'div' + i
        }).appendTo('body');
    }
});

$('.cell').mouseover(function () {
    var randomColor = '#' + (function co(lor){   return (lor +=
  [0,1,2,3,4,5,6,7,8,9,'a','b','c','d','e','f'][Math.floor(Math.random()*16)])
  && (lor.length == 6) ?  lor : co(lor); })('');
    $(this).css("background-color", randomColor);
});
$(文档).ready(函数(){

对于(var i=0;i您想要这样的东西:

$('.cell').mouseover(function () {
    var randomColor = '#' + Math.floor((Math.random() * 16777216)).toString(16);
    $(this).css("background-color",randomColor);
});
过渡效果应该可以通过CSS过渡实现

16777216是16^6,由6位十六进制表示的值的范围。toString(16)将十进制值转换为十六进制

预计到达时间:

为确保正确性,当生成的值非常低时,应考虑前导零。否则将导致某些前导零颜色(0A6E7A)被替换为尾随零颜色(A6E7A0)


你想要这样的东西:

$('.cell').mouseover(function () {
    var randomColor = '#' + Math.floor((Math.random() * 16777216)).toString(16);
    $(this).css("background-color",randomColor);
});
过渡效果应该可以通过CSS过渡实现

16777216是16^6,由6位十六进制表示的值的范围。toString(16)将十进制值转换为十六进制

预计到达时间:

为确保正确性,当生成的值非常低时,应考虑前导零。否则将导致某些前导零颜色(0A6E7A)被替换为尾随零颜色(A6E7A0)


mouseout
函数中,可以为
rgb
颜色生成三个随机值

$(this).css("background","rgb("+Math.floor(Math.random()*256)+","+Math.floor(Math.random()*256)+","+Math.floor(Math.random()*256)+")")

在您的
mouseout
函数中,您可以为
rgb
颜色生成三个随机值

$(this).css("background","rgb("+Math.floor(Math.random()*256)+","+Math.floor(Math.random()*256)+","+Math.floor(Math.random()*256)+")")

您还没有尝试将背景色指定给div

这是我的密码-

$('.cell').mouseover(function () {
    var randomColor ='#'+ ('000000'+(Math.random() * 0xFFFFFF<<0 ).toString( 16 )).slice(-6);
    $(this).css("background-color",randomColor);
});
$('.cell').mouseover(函数(){

var randomColor='#'+('000000'+(Math.random()*0xFFFFFF您还没有尝试为div指定背景色

这是我的密码-

$('.cell').mouseover(function () {
    var randomColor ='#'+ ('000000'+(Math.random() * 0xFFFFFF<<0 ).toString( 16 )).slice(-6);
    $(this).css("background-color",randomColor);
});
$('.cell').mouseover(函数(){


var randomColor='#'+('000000'+(Math.random()*0xFFFFFF
Math.random()
提供0到1之间的值。显然,您需要做一些事情来将其转换为有用的十六进制或RGB值。我看不出您在哪里做过这样的努力。您似乎根本没有尝试更改颜色。@MikeBrant一份简历值1000字;)
Math.random()
提供介于0和1之间的值。显然,您需要做些什么来将其转换为有用的十六进制或RGB值。我看不出您在哪里做过这样的努力。您似乎也根本没有试图更改颜色。@MikeBrant a CV值1000字;)如果
Math.random
返回类似于0.01的值怎么办?嗯,很好的捕捉。我在低值的情况下省略了0填充。@ElliotM的答案更简洁,但为后代修正了这个问题。我认为你的编辑实际上不起作用,是吗?尝试替换Math.random()我想你需要这样的东西:
(Math.random()*0x1000000 | 0)。toString(16)。replace(/.*/,function(x){return x.length<6?Array(7-x.length)。join('0')+x:x})
如果
Math.random
返回类似于0.01的值,该怎么办?嗯,捕捉得很好。我在低值的情况下省略了0填充。@ElliotM的答案更简洁,但为后代修正了这个问题。我认为您的编辑实际上不起作用,是吗?尝试替换Math.random()我想你需要这样的东西:
(Math.random()*0x1000000 | 0)。toString(16)。replace(/.*/,function(x){return x.length<6?Array(7-x.length)。join('0')+x:x})
目前为止这里的最佳答案,但它永远不会给出纯白颜色。请尝试256而不是255。我应该注意到这一点。谢谢@Daggnabbit目前为止这里的最佳答案,但它永远不会给出纯白颜色。请尝试256而不是255。我应该注意到这一点。谢谢@Daggnabbit这怎么能生成比
999999更亮的颜色ode>?如果
Math.random
返回类似于0.00001的值怎么办?如果0.0000001会产生“0.0999”怎么会产生比
999999
更亮的颜色呢?如果
Math.random
返回类似于0.00001的值怎么办?如果0.0000001会产生“0.0999”呢这怎么能产生比
#999999
更亮或比
#100000
更暗的颜色呢?很接近,但它能产生的最亮的颜色是
#fffff e
。你需要
0x1000000
而不是
0xffff
(顺便说一句,
切片
技巧非常巧妙,干得漂亮):)这怎么能产生比
#999999
更亮或比
#100000
更暗的颜色呢?很接近,但它能产生的最亮的颜色是
#fffff e
。你需要
0x1000000
而不是
0xffff
(顺便说一句,
切片
技巧非常巧妙,干得漂亮):)