2013-04-08 126 views
0

我试图以特定方式将一对背景样式添加到html标记。这是迄今为止我所拥有的。将背景图像和背景颜色对添加到元素

$(function() { 
    var images = ['bg-day.png', 'bg-sunset.png', 'bg-night']; 
    var colors = ['#0066CD', '#ff0000', '#1D2951']; 
    $('html').css({'background-image': 'url(img/' + images[Math.floor(Math.random() * images.length)] + ')'}); 
}); 

所以,我需要做的是配对相应的变量,其中0的位置既bg-day.png#0066CD,等等。因此,如果提供给html标签的背景图像是bg-day.png,它也会将#0066CD的背景色添加到html标签。

回答

3

Store中的随机数,并把它作为两个数组的索引:

$(function() { 
    var images = ['bg-day.png', 'bg-sunset.png', 'bg-night'], 
     colors = ['#0066CD', '#ff0000', '#1D2951'], 
     index = Math.floor(Math.random() * images.length); 

    $('html').css({'background-image' : 'url(img/' + images[index] + ')', 
       'background-color' : colors[index] 
       }); 
}); 
+0

我不能得到这个工作。首先,使用你的解决方案,我必须将'background-image'更改为'background',因为你使用简写方法。但是,出于某种原因,在修正之后,它给了我不一致的结果,通常当我重新加载时,根本没有附加到'html'标签的背景信息。 – micah 2013-04-08 22:40:14

+0

我不确定为什么它会像这样工作不一致,但对两个数组使用相同索引的概念应该可以正常工作。我没有考虑设置颜色,url需要速记版本,因为这是我总是使用的,但是您可以尝试单独设置。 – adeneo 2013-04-08 22:47:19

+0

完美。甜,你的更新版本按预期工作。谢谢! – micah 2013-04-08 22:53:37