如何在显示前在幻灯片放映中预加载下一张幻灯片
How Can I make next slide Preload in Slideshow before Display
我正在尝试为现场活动编写幻灯片,其中图片将在许多无线设备上播放。由于网络拥塞,我想添加功能以在过渡之前将幻灯片保持指定的时间,但预加载下一个图像,如果图像尚未完全加载,请保持过渡直到它完全加载。不幸的是,我是一个Javascript新手,只能编写这么多代码。
以下是我提供幻灯片放映的网页的代码。由于我们更新了图像池,因此它是一个 php 脚本,每五分钟重新加载一次,并为幻灯片提供新幻灯片。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="refresh" content="300" >
<title>Slideshow</title><!-- -->
<script src="scripts/jquery-1.7.2.min.js" type="text/javascript"></script>
<script src="scripts/jquery.cycle.lite.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){
$('#myslides').cycle({
fit: 1, pause: 1, timeout: 4000
});
});
</script>
<link rel="stylesheet" href="styles/dynamicslides.css" type="text/css" media="screen" />
<body>
<?php
$directory = 'images/slideshow';
try {
// Styling for images
echo '<div id="myslides">';
foreach ( new DirectoryIterator($directory) as $item ) {
if ($item->isFile()) {
$path = $directory . '/' . $item;
echo '<img style="width:600px;height:600px;" src="' . $path . '"/>';
}
}
echo '</div>';
}
catch(Exception $e) {
echo 'No images found for this slideshow.<br />';
}
?>
</body>
</html>
我知道循环插件具有可以调用函数的 before 选项,我认为这是正确的方向,但不确定如何使用它来调用预加载函数。
任何帮助将不胜感激。
我不打算给你整个代码,但会给你一些如何做的想法。
1,使用带有下一个/上一个按钮选项的循环而不是超时。隐藏将触发加载下一个图像的按钮。
2)添加一个新的图像元素,显示/不透明度设置为无/透明,宽度为0等,类似的东西使图像不显示(但仍加载到缓存中)。我认为如果显示关闭,它不会加载,但我不知道。
3) 使用图像加载功能查看图像何时完成加载,并手动触发下一个链接/功能循环。
我写了一个用于预加载图像的JavaScript模块。看看吧,也许它会帮助你:
http://test.neilgirardi.com
它是用"普通的旧"JavaScript编写的,而不是jQuery。这意味着你可以在jQuery加载之前执行它。(越早开始预加载,图像就越早准备好)。加载图像后,模块可以触发回调。如果回调需要 jQuery,你可以告诉模块在运行回调之前等待 jQuery 加载。
上述链接指向的页面包含一个演示,该演示使用该插件预加载3.1MB的图像,并在图像全部加载后开始循环幻灯片。
根据OP的反馈进行更新:
好的,所以你想用 X 张图像开始一个幻灯片,然后每五分钟添加 Y 张新图像,对吗?
我要做的是实例化图像预加载器类的一个对象来预加载第一批图像。预加载器回调将启动幻灯片放映。
然后我会有一个 updateImage() JavaScript 方法。此方法将每隔五分钟运行一次。每次触发该方法时,它都会对后端进行异步调用,这将下一批图像作为 JSON 对象返回。接下来,该方法将实例化一个新的预加载器对象以加载新一批图像。这个新预加载器的回调会将图像附加到幻灯片 HTML 中,从而将它们添加到旋转中。
- jm按下停止步骤进入滚动的下一张幻灯片
- 当 Flickity 到达下一张或上一张幻灯片时的事件
- 为什么bxSlider会打断我在最后一张幻灯片和第一张幻灯片之间的转换
- 引导程序3转盘-随机选择下一张幻灯片
- 如何在最后一张幻灯片上停止动画
- 完整的背景图片幻灯片jquery,想让幻灯片的最后一张图片可以点击
- Basic jQuery Slider中上一张/下一张幻灯片的自定义链接触发器
- 指向html5库最后一张幻灯片后的html页面
- jQuery 循环 如果只有一张幻灯片,则隐藏上一个/下一个导航
- 如何停止幻灯片放映隐藏文本和图像跳到顶部,而下一张幻灯片进来
- jQuery幻灯片,转到上一张图片
- iOS 滑块默认为最后一张幻灯片
- 光滑的滑块删除最后一张幻灯片,如果 winWidth < 500
- Javascript幻灯片在节目开始时快速出现最后一张图像
- BX滑块滑块滑块最后一张幻灯片总是隐藏某些部分
- 滑入下一张柔性滑块幻灯片后,css 动画不起作用
- 如何在显示前在幻灯片放映中预加载下一张幻灯片
- 滑块中显示下一张幻灯片的链接.为什么
- 如何获取最后一张和第一张幻灯片以相应地激活或禁用下一个和上一个按钮
- 幻灯片放映-将幻灯片链接到URL,仅适用于最后一张幻灯片