我正在尝试重写下面的代码来搜索所有图像的文件夹(它们将被编号,但可能有间隙,即不是1.jpg,2.jpg,3.jpg而是1.jpg,15。 jpg,60.jpg因为这个原因我想搜索文件夹,将所有图像放入一个数组中,然后每次循环选择一个。
非常感谢任何帮助。
首先,我目前在下面的主要脚本上方指定图像总数:
imgWidth = 160,
imgHeight = 95,
imgTotal = 22,
total = 0,
tiles;
//create the HTML for the tiles and append that to the bg element
function makeTiles(count){
var html = '', imgNum;
while(count--){
imgNum = Math.floor(Math.random()*imgTotal + 1);
html += "<div class='tile' style='background:url(public/images/portfolio/all/"+imgNum+".jpg) 0 0 no-repeat;' ><img style='opacity:0; filter:alpha(opacity=0);' src='public/images/portfolio/all/"+imgNum+"-c.jpg' alt='' /></div>\r";
}
$bg.append(html);
}
答案 0 :(得分:3)
您需要使用除javascript之外的其他内容创建可用图像列表,因为它没有文件系统访问权限,即使最终您通过其URL访问图像。
解决方法:为图像启用一些目录列表,然后通过javascript访问此页面,解析图像文件并从中构造一个数组;但坦率地说,有更短更强大的方法来实现这一目标......
伪代码 ..
$ ls -1 *jpg > imagesfilelist.txt
$ cp imagefilelist.txt /some/publicly/accessible/folder
js / jquery ..
$.get("/some/publicly/accessible/folder/imagefilelist.txt", function(data){
alert("My image files: " + data);
});
...
答案 1 :(得分:2)
javascript无法访问本地文件夹。点。
我再说一遍:你无法“搜索文件夹”来获取JS中的“图像数组”。您可以使用PHP或此类服务器端语言执行该部分(仅限服务器!)并通过AJAX返回结果。
答案 2 :(得分:0)
要做你想做的事,你需要知道图像的名称。 JavaScript无法直接访问文件夹,如上所述。您需要使用服务器端脚本来提供图像数组,供JS随机选择以执行此操作。
答案 3 :(得分:0)
Javascript将无法浏览文件夹。您需要做的是创建一个可用图像数组,然后选择一个随机图像。您可以使用任何服务器端技术(php,rails,java,.net ...)来执行此操作。
答案 4 :(得分:0)
你尝试这样做的方式是错误的。虽然它可以使用一些技巧,但是做这种事情是非常错误的。
您可以使用php生成文件列表并将其提供给您的脚本。你甚至可以创建php脚本,它将生成你的脚本已经填充了所需的数据,但它也不是最好的。
所以,最好的方法是: - 通过php创建带有文件名/图像列表(可见或不可见)的html,然后通过javascript操作它; - 创建html和javascript将对php脚本进行AJAX查询,这将返回文件名列表(如果你愿意,可以格式化为JSON)。
答案 5 :(得分:0)
为什么不将图片上传到免费托管网站(如Flickr)从图片组中抓取Feed并从那里选择随机图片?