【问题标题】:Use Javascript to assign random background color to images on page load使用 Javascript 在页面加载时为图像分配随机背景颜色
【发布时间】:2013-10-15 23:01:26
【问题描述】:

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

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

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

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

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

我查看了 Chad 的这个答案,用于为 div 类分配随机颜色,但即使 jsfiddle 看起来很棒,我也无法让它按预期工作。我敢肯定我的结局有些奇怪..many divs with same class - different background

非常感谢任何帮助!谢谢!

【问题讨论】:

  • 您是否使用 JQuery 来重现 jsfiddle 中的内容?
  • 嗯.. 我以为我有,但在审查中我没有。所以我链接到的脚本效果很好,我会尝试根据我的需要调整它,如果我需要帮助,我会回到这个线程。尴尬的!谢谢!
  • 因此脚本可以正常工作,可以将颜色随机分配给具有“.random”类的 div。现在,如何将其分配给图像的背景颜色?我目前用来为它们分配一种颜色的 CSS 是 .thumbs a img:hover{background-color:#CC99FF;} 我已经玩了一点,但我最初关于如何做到这一点的想法失败了。再次感谢

标签: image random colors background


【解决方案1】:

根据您的评论,您可以这样做(此代码还需要 jquery):

<style>
    .color-1 a img:hover{background-color:red;}
    .color-2 a img:hover{background-color:blue;}
    .color-3 a img:hover{background-color:green;}
    .color-4 a img:hover{background-color:yellow;}
    .color-5 a img:hover{background-color:orange;}
</style>

<script>
    $(function(){ // this is a shortcut for "on document ready"
        // For each element with the class thumb we find:
        $('.thumb').each(function(){
            // add random class to assign the color
            $(this).addClass('color-' + (Math.floor(Math.random() * 5) + 1));
        });
    })
</script>
...

希望这会有所帮助:)

【讨论】:

  • 这是一个有趣的方法,我不会想到这一点,我一定会尝试一下。谢谢!为了理解这个概念,还有另一种方法吗?我在我的 OP 中将代码应用于链接的背景颜色,因此应用于 img 的 bg 应该同样简单。对我不起作用的是当我添加 :hover 到它时,就像 css 一样。它只是坏了,并没有改变任何东西。那么,是否有一种特殊的格式可以输入 :hover 部分,或者是否需要在实际的 JS 中将其声明为 mouseover 事件或类似的东西?
  • 我也很想添加它,以便在单击图像/“活动”后保持悬停颜色,直到单击另一个图像。
猜你喜欢
  • 2013-10-17
  • 1970-01-01
  • 2014-01-27
  • 1970-01-01
  • 2013-10-14
  • 1970-01-01
  • 1970-01-01
  • 2014-07-24
  • 1970-01-01
相关资源
最近更新 更多