2011-09-03 113 views
0

我正在使用Jay Salvats vegas插件(http://vegas.jaysalvat.com)生成全屏背景。无法解析函数中的变量

而不是静态地设置背景图片src,我想生成6个随机图像。

下面的img变量正在工作(即使有点低效);不过,我似乎无法将该变量输出到src。

请帮忙。

$(function() { 
    var img1 = new String("/images/bg/"+Math.floor(Math.random()*101) + ".png"); 
    var img2 = new String("/images/bg/"+Math.floor(Math.random()*101) + ".png"); 
    var img3 = new String("/images/bg/"+Math.floor(Math.random()*101) + ".png"); 
    var img4 = new String("/images/bg/"+Math.floor(Math.random()*101) + ".png"); 
    var img5 = new String("/images/bg/"+Math.floor(Math.random()*101) + ".png"); 
    var img6 = new String("/images/bg/"+Math.floor(Math.random()*101) + ".png"); 


$.vegas('slideshow', { 
    delay: 8000, 
    backgrounds: [ 
     { src: '+img1+', fade: 4000 }, 
     { src: '+img2+', fade: 4000 }, 
     { src: '+img3+', fade: 4000 }, 
     { src: '+img4+', fade: 4000 }, 
     { src: '+img5+', fade: 4000 }, 
     { src: '+img6+', fade: 4000 } 
    ] 
})('overlay'); 

}); 

回答

2

为什么你把变量名放在一个字符串中?这将导致图像的来源为+img1+而不是变量的实际值。

$(function() { 
    var img1 = new String("/images/bg/"+Math.floor(Math.random()*101) + ".png"); 
    var img2 = new String("/images/bg/"+Math.floor(Math.random()*101) + ".png"); 
    var img3 = new String("/images/bg/"+Math.floor(Math.random()*101) + ".png"); 
    var img4 = new String("/images/bg/"+Math.floor(Math.random()*101) + ".png"); 
    var img5 = new String("/images/bg/"+Math.floor(Math.random()*101) + ".png"); 
    var img6 = new String("/images/bg/"+Math.floor(Math.random()*101) + ".png"); 


$.vegas('slideshow', { 
    delay: 8000, 
    backgrounds: [ 
     { src: img1, fade: 4000 }, 
     { src: img2, fade: 4000 }, 
     { src: img3, fade: 4000 }, 
     { src: img4, fade: 4000 }, 
     { src: img5, fade: 4000 }, 
     { src: img6, fade: 4000 } 
    ] 
})('overlay'); 

}); 
+0

感谢。我以为我尝试过,但我不认为它是由于某种原因加载图像。我会再试一次。 – daddia