我有以下代码:
<?php
$dir_handle = 'assets/splashs/';
foreach(array_diff(scandir($dir_handle), array('.', '..')) as $file) {
echo '<img id="preload_header" src="assets/splashs/' . $file . '" /><br />';
}
?>
我想知道是否可以检查图像是否成功加载,如果可以,则删除图像并移至下一个图像?
我的初始文件夹中有600多个图像,我不希望仅在侧面放置600个图像,但是我希望在我在其他地方调用它们时预先加载它们。
load image => successfully loaded => remove and onto next image
=> unsuccessfully loaded => remove image and stop
感谢您的任何帮助。
最佳答案
这是您预加载图像的方式:
<script type="text/javascript">
if (document.images) {
img1 = new Image();
img1.src = "image.jpg";
}
</script>
因此,您无需加载和显示图像(
<img src="....">
),而是使用JavaScript将其加载到浏览器中,因此以后不必“移除图像”,因为它们永远都不会显示。可以与foreach结合使用:
<script type="text/javascript">
if (document.images) {
<?php
$i = 0;
foreach(array_diff(scandir($dir_handle), array('.', '..')) as $file) {
echo 'img' . $i . ' = new Image();' . PHP_EOL;
echo 'img' . $i . '.src = "' . $file . '";' . PHP_EOL;
$i++;
}
?>
}
</script>