【问题标题】:Javascript: Assign random background color to image on hoverJavascript:在悬停时为图像分配随机背景颜色
【发布时间】:2013-10-17 09:58:03
【问题描述】:

我不擅长 javascript,但我认为这是可行的,可以使用你的帮助。

我有一个名为 .thumbs 的 div 类,在这个 div 里面是灯箱画廊的所有缩略图(这些缩略图也是链接)。

图像有内边距和边框,因此您可以在内边距中看到图像的背景颜色。

我想要一个脚本,它将从五种颜色中随机分配一种颜色作为 :hover 上每个图像的背景颜色。

我认为最好在页面加载时只分配一次这些颜色,而不是每次将图像悬停在上面时都分配一个新的随机颜色。

我尝试调整在这里找到的脚本:https://stackoverflow.com/a/18259491/2860129

我将它从 .random 更改为 .thumbs img,并且脚本按预期将颜色分配给图像的背景。但是添加任何类型的 :hover 都会破坏它并且没有任何反应。是否有某个地方我需要添加:悬停,或者是否需要在 javascript 中使用 onmouseover 或类似的东西定义悬停动作..?

此外,我希望在单击图像后保持背景颜色,直到单击/选择另一个图像。如果任何人都可以添加到此代码中,这样就不会连续出现两个相同颜色的代码,那就太好了。 (我删除了“从数组中删除颜色,使其不能再次使用”部分)。

感谢任何可以提供帮助的人,我想这些都是非常简单的问题,但我非常感谢。

【问题讨论】:

    标签: random colors background hover


    【解决方案1】:

    使用 jquery

    $(".thumbs").hover(function() {
     color = new Array(1,1,1).map(function(val) { return ~~(Math.random()*255); }).join(",")
     return "rgb(" + color + ");";
    });
    

    【讨论】:

    • 我根本无法让它工作。我检查以确保已加载 jquery,并且确实如此。我什至删除了你的代码并尝试了这个简单的小脚本,即使这样也没有发生任何事情 (w3schools.com/jquery/tryit.asp?filename=tryjquery_event_hover) 可能是什么问题??
    • 发生了什么?悬停时颜色会发生变化,然后按照您的指定变为粉红色。
    • 我的意思是当我将该段落悬停脚本添加到我的页面并对其进行测试时,它不起作用并且悬停时段落颜色不会改变。我认为这是相关的,因为如果该不相关的脚本也无法在我的页面上运行,那可能表明我实际想要使用的脚本无法运行的问题/原因。
    猜你喜欢
    • 1970-01-01
    • 2013-10-15
    • 1970-01-01
    • 2015-05-30
    • 2017-06-28
    • 1970-01-01
    • 1970-01-01
    • 2015-11-09
    • 2013-10-23
    相关资源
    最近更新 更多