2013-10-14 105 views
0

稍微背景 - 我通过交易编写java,python,c#和hacky shell脚本,并且几乎没有javascript经验(从今天开始)。我一直在四处挖掘,到目前为止,没有任何一个关于stackoverflow的问题已经奏效(或者,我可能没有js的诀窍可以使它们工作)。调整交替背景图像以适合屏幕

无论如何,故事 - 我想要一个页面,其中背景在本地存储的一组预定图像(bg01.jpg到bgXX.jpg)之间切换。我已经想出了如何循环显示图像,现在我希望这些图像能够真正适合文档背景......而不仅仅是......做他们自己的事情。

这里是我到目前为止(工作) - (编辑10月15日)

<!DOCTYPE html> 
<html> 
<style> 
body {background-repeat:no-repeat;} 
</style> 
<body> 

<script> 

var bgslides=new Array() 
bgslides[0]="bg01.jpg" 
bgslides[1]="bg02.jpg" 
bgslides[2]="bg03.jpg" 
bgslides[3]="bg04.jpg" 
bgslides[4]="bg05.jpg" 


//Specify interval between slide (in miliseconds) 
var speed=1000 

//preload images 
var processed=new Array() 
for (i=0;i<bgslides.length;i++){ 
    processed[i]=new Image() 
    processed[i].src=bgslides[i] 
} 

var inc=-1 
function slideback(){ 
if (inc<bgslides.length-1) 
    inc++ 
else 
    inc=0 
document.body.style.backgroundImage = "url("+bgslides[inc]+")"; 
} 

if (document.all||document.getElementById) 
window.onload=new Function('setInterval("slideback()",speed)') 


</script> 
</body> 
</html> 

我已经试过

image.width = .. 
image.height = .. 

但我认为,在调用

document.body.background = image.src 

覆盖以前的更改image.width ..不是我有很多线索。我也尝试了几个不同的调整大小的函数,我发现了这个地方并进行了修改,并试图改变js和迄今为止的css(该部分?)..nada。

有没有什么我可以插入这个让它愉快地调整大小?!

回答

0

相反document.body.background行,你有没有想过像

document.body.style.backgroundImage = "url("+bgslides[inc]+")"; 

的几个注意事项。 - “新的图像()”与标签一起使用,但不是预加载图像,您不会将其用于CSS背景。 - 尽管JavaScript不需要它,但强烈建议用分号结束语句。 - 您有一行“processed [i] .size =”,它未定义。 - 在else语句中还应包含“document.body.background = processed [inc] .src”,但它应该在整个if/then之外。

+0

啊我一定错过了复制/粘贴/编辑时的尺寸线 - 很好的发现!我为'document.body.style.backgroundImage =“url(”+ bgslides [inc] +“)”;'换了'document.body.background = processed [inc] .src';' - 没有明显的变化。此外,事实证明,它必须位于其他部分,否则代码似乎根本不起作用。呵呵。这并不是说为什么甚至在webconsole中。 – user2877564

+0

在您的演示代码中,您仍然在else语句中包含该行,因此大部分时间都不会调用它。另外,“if(document.all || document.getElementById)”返回false,您从不设置超时。我不确定你为什么要这么叫。我不认为“功能”应该大写。甚至打电话。我不认为你需要window.onload。你可能只想要setInterval调用。 –

+0

嗨,如果你指的是“document.body.style.backgroundImage =”url(“+ bgslides [inc] +”)“;”那么正如我所说,如果我把它放在if else段之外,代码根本不起作用。我不知道为什么 - 它只是没有。我不确定它为什么要求这样做 - 我发现代码段在某个地方,而且它是第一个在半小时内拖网后工作的块。我很乐意尝试一种不同的风格,如果你愿意介绍它。 – user2877564