提取图像到 flexslider
Extracting images to flexslider
我正在使用图像滑块 known as flexslider。目前我正在手动向其中添加图像,但我想对其进行增强,以便可以从特定文件夹中提取图像并将其添加到其 <li>
元素中。我正在寻找 jQuery 函数来执行此操作。可能吗?
JSFIDDLE:http://jsfiddle.net/t3sgbq5w/
HTML:
<div class="flexslider">
<ul class="slides">
<li>
<img src="http://placehold.it/350x150" />
</li>
<li>
<img src="http://placehold.it/350x150" />
</li>
<li>
<img src="http://placehold.it/350x150" />
</li>
</ul>
</div>
没有。 JavaScript是客户端技术,不能在服务端做任何事情。但是,您可以使用 AJAX 调用服务器端脚本(例如 PHP),它可以 return 您需要的信息。
我认为你需要 php 或 asp,这里是 php:
中的代码
<div class="flexslider">
<ul class="slides">
<?php
$folder = 'images/Galerija'; // chose folder
$extensions = array('JPG','jpg','jpeg','gif','png'); // allowed extensions
$slika = scandir($folder); // scan folder
sort($slika); // sort
foreach($slika as $key => $value) {
$get_extensions = explode(".",$value);
$ext = $get_extensions[count($get_extensions) - 1];
if (in_array($ext, $extensions))
{
$title = substr($value, 0,strrpos($value,'.')); // image name
echo "<li><img src='".$folder."/".$value."' /></li>";
}
}
?>
</ul>
</div>
你会得到这个:
<div class="flexslider">
<ul class="slides">
<li><img src="images/image.jpg" /></li>
<li><img src="images/image2.jpg" /></li>
<li><img src="images/image3.jpg" /></li>
</ul>
</div>
我以前在制作滑块时遇到过这个问题,而不是手动添加新图像并编辑代码。我写了一个 PHP 代码来读取文件夹中的所有图像内容。
例如我有这个文件夹结构:
> mywebsite
- index.php
> images(folder)
-image1.png
-image2.png
-image3.png
在我的 index.php
里面
<div class="flexslider">
<ul class="slides">
<?php $dir_handle='./images/';
foreach(array_diff(scandir($dir_handle), array( '.', '..')) as $file) { echo '<li><img src="./images/'.$file. '" /></li>'; } ?>
</ul>
</div>
上面的 PHP 代码读取 "images" 文件夹中的所有图像内容。解析后的 HTMl 应该是这样的
<div class="flexslider">
<ul class="slides">
<li><img class="" src="images/image1.png"></li>
<li><img class="" src="images/image2.png"></li>
<li><img class="" src="images/image3.png"></li>
</ul>
</div>
希望对您有所帮助。
这是可能的,但这取决于您想从哪里获取图像列表。以下是一些场景:
1.自己服务器上的图片(仅使用JS)
如果您有自动目录列表(即,当您访问没有 index.html 文件的文件夹时,会列出该文件夹中的所有文件)。您可以对该文件夹使用 AJAX GET 请求,然后解析内容以获得所有图像的数组。
这不需要任何服务器端脚本,但需要向服务器发出 2 次请求(初始页面加载,然后 JS 将 运行 并获取图像)。
2。您自己服务器上的图像(借助服务器端脚本)
编写一个简单的服务器端脚本(例如 PHP),它将获取文件夹中所有图像的列表,然后将其作为页面的一部分提供给客户端(例如在 JS 中包含在页面中的数组)。
这比 1. 快,因为对服务器只有一个请求。当用户获取该页面时,它已经拥有其中所有图像的列表。
3。图片不在您的服务器上(仅使用 JS)
由于跨域安全限制,这通常是不可能的。 IE。您不能使用 AJAX 请求与您的域不在同一域中的页面(除非目标服务器特别允许)。
4.图片不在您的服务器上(借助服务器端脚本)
使用这种方法,您可以编写一些服务器端脚本来从另一台服务器获取图像列表。源可以是 HTML 页面。您将获得此页面并在您的服务器上对其进行解析,然后将其作为最终页面输出的一部分提供给您的用户。
我正在使用图像滑块 known as flexslider。目前我正在手动向其中添加图像,但我想对其进行增强,以便可以从特定文件夹中提取图像并将其添加到其 <li>
元素中。我正在寻找 jQuery 函数来执行此操作。可能吗?
JSFIDDLE:http://jsfiddle.net/t3sgbq5w/
HTML:
<div class="flexslider">
<ul class="slides">
<li>
<img src="http://placehold.it/350x150" />
</li>
<li>
<img src="http://placehold.it/350x150" />
</li>
<li>
<img src="http://placehold.it/350x150" />
</li>
</ul>
</div>
没有。 JavaScript是客户端技术,不能在服务端做任何事情。但是,您可以使用 AJAX 调用服务器端脚本(例如 PHP),它可以 return 您需要的信息。 我认为你需要 php 或 asp,这里是 php:
中的代码<div class="flexslider">
<ul class="slides">
<?php
$folder = 'images/Galerija'; // chose folder
$extensions = array('JPG','jpg','jpeg','gif','png'); // allowed extensions
$slika = scandir($folder); // scan folder
sort($slika); // sort
foreach($slika as $key => $value) {
$get_extensions = explode(".",$value);
$ext = $get_extensions[count($get_extensions) - 1];
if (in_array($ext, $extensions))
{
$title = substr($value, 0,strrpos($value,'.')); // image name
echo "<li><img src='".$folder."/".$value."' /></li>";
}
}
?>
</ul>
</div>
你会得到这个:
<div class="flexslider">
<ul class="slides">
<li><img src="images/image.jpg" /></li>
<li><img src="images/image2.jpg" /></li>
<li><img src="images/image3.jpg" /></li>
</ul>
</div>
我以前在制作滑块时遇到过这个问题,而不是手动添加新图像并编辑代码。我写了一个 PHP 代码来读取文件夹中的所有图像内容。
例如我有这个文件夹结构:
> mywebsite
- index.php
> images(folder)
-image1.png
-image2.png
-image3.png
在我的 index.php
里面<div class="flexslider">
<ul class="slides">
<?php $dir_handle='./images/';
foreach(array_diff(scandir($dir_handle), array( '.', '..')) as $file) { echo '<li><img src="./images/'.$file. '" /></li>'; } ?>
</ul>
</div>
上面的 PHP 代码读取 "images" 文件夹中的所有图像内容。解析后的 HTMl 应该是这样的
<div class="flexslider">
<ul class="slides">
<li><img class="" src="images/image1.png"></li>
<li><img class="" src="images/image2.png"></li>
<li><img class="" src="images/image3.png"></li>
</ul>
</div>
希望对您有所帮助。
这是可能的,但这取决于您想从哪里获取图像列表。以下是一些场景:
1.自己服务器上的图片(仅使用JS)
如果您有自动目录列表(即,当您访问没有 index.html 文件的文件夹时,会列出该文件夹中的所有文件)。您可以对该文件夹使用 AJAX GET 请求,然后解析内容以获得所有图像的数组。
这不需要任何服务器端脚本,但需要向服务器发出 2 次请求(初始页面加载,然后 JS 将 运行 并获取图像)。
2。您自己服务器上的图像(借助服务器端脚本)
编写一个简单的服务器端脚本(例如 PHP),它将获取文件夹中所有图像的列表,然后将其作为页面的一部分提供给客户端(例如在 JS 中包含在页面中的数组)。
这比 1. 快,因为对服务器只有一个请求。当用户获取该页面时,它已经拥有其中所有图像的列表。
3。图片不在您的服务器上(仅使用 JS)
由于跨域安全限制,这通常是不可能的。 IE。您不能使用 AJAX 请求与您的域不在同一域中的页面(除非目标服务器特别允许)。
4.图片不在您的服务器上(借助服务器端脚本)
使用这种方法,您可以编写一些服务器端脚本来从另一台服务器获取图像列表。源可以是 HTML 页面。您将获得此页面并在您的服务器上对其进行解析,然后将其作为最终页面输出的一部分提供给您的用户。