在galleryView中似乎没有任何对预加载图像的原生支持。从规格:
我会在未来的版本中研究预加载图像
所以你必须自己动手。
看一下 jQuery.load()
函数。
加载后显示第一张图像,然后在后台加载其他图像。
假设第一张图片在id
=first
$(function() { // <== doc ready
// do something after first image is loaded
$("#first").load( /* show the first image */ );
// do something after all images loaded
$("img").load( /* do the main gallery loop */ )
});
根据需要修改上述内容。假设您要显示第一个大图像和前 5 个缩略图等。
这就是我要开始的方式。我认为如果您不仅预加载第一张图像,而且预加载尽可能多的图像来填满第一行拇指,它可能看起来会更流畅。
div
在加载所有图像之前,仅显示一个临时图像:
HTML:
<div id="temp"></div>
<div id="photos" class="galleryview">
<img id="first" ... />
<img ... />
<img ... />
<img ... />
...
</div>
JS:
$(function() { // <== doc ready
var $photos = $("#photos"), $temp = $("#temp"),
$first = $("#first");
// Hide gallery:
$photos.hide();
// show temp when 1st img loaded
$first.load( $temp.append( $first.clone() ) );
// To make things look smooth you can also make
// a quick gallery view out of temp. This only has 1 image.
$temp.galleryView({
panel_width: 800,
panel_height: 300,
frame_width: 100,
frame_height: 100,
});
// do full gallery when all imgs loaded
$("img").load(
// remove the temp gallery
$temp.remove();
// show gallery
$photos.galleryView({
panel_width: 800,
panel_height: 300,
frame_width: 100,
frame_height: 100,
});
);
});