2012-09-27 165 views
3

我有幻灯片的代码。 但是我想要做的是加载一个输入框,用户输入文件夹的名称,然后页面来找到该文件夹​​,并显示该文件夹中的每个图像。 我已经设法做到这一点,有两个不同的页面,一个与输入框,然后另一个显示图像。Javascript图片幻灯播放循环

但是我宁愿不对图像源进行硬编码,因为我希望网页在服务器上运行,但不同的幻灯片可能会在公司的不同位置运行。从我已经完成的研究中,我想我需要一个for循环,循环遍历文件夹中的每张图片,但不是100%确定。这是我到目前为止:

我已经从前一页传入文件夹名称。但是,正如你所看到的,图像路径仍然是硬编码的。我想要一个for循环遍历每张图片并将它们全部显示在网页上,无论它们在哪里/只要它们输入了正确的文件夹/幻灯片名称。由于图像文件夹将全部位于网络路径的相同位置。

<!DOCTYPE html> 
<html> 

<head> 
<script type="text/javascript"> 
var first = getUrlVars()["SlideShowTest"]; 

function getUrlVars() { 
    var vars = {}; 
    var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) { 
     vars[key] = value; 
    }); 
    return vars; 
} 
//alert(first) 
//--> 
</script> 


</head> 
<body> 


<script type="text/javascript"> 
<!-- 
var step=1 
function slideit(){ 
document.images.slide.src=eval("image"+step+".src") 
if(step<3) 
step++ 
else 
step=1 
setTimeout("slideit()",2500) 
} 
slideit() 
</script> 

</body> 
</html> 

回答

1

看起来像它可能工作。

至于风格,你可以把图片放到一个数组摆脱的EVAL:

var images= []; 
var image; 
image= new Image(); 
image.src= '...'; 
images.push(image); 

for(var i=0; i<images.length; ++i) { 
    image= images[i]; 
    ... 
} 

,也是最好用的setInterval( “slideit()”,2500);一次而不是setTimeout。

+0

那么我该如何说文件夹中的每个图像?做(幻灯片放映) – TeamGB