使用 jCarousel 预加载图像
我有以下代码,它加载 JSON 提要并创建 jCarousel 工作所需的所有 HTML。但是,我不确定如何预加载图像。有人知道如何做到这一点吗?
$(".banner ul").jcarousel({
itemLoadCallback:loadTopBanner,
auto: 6,
wrap: 'circular',
scroll: 1,
animation:1000,
itemFallbackDimension:10
});
function loadTopBanner(carousel, state){
$.getJSON("get_top_banner.php", function(data){
carousel.size( data.length );
$.each(data, function(i){
carousel.add(i, makeTag(this.imageURL, this.URL));
});
});
}
function makeTag(img, url){
return "<a href='" + url + "'><img src='" + img + "'></a>";
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这应该可以解决问题,但是,它未经测试,可以进一步优化:
This should do the trick, however, it is untested, and can be further optimised:
可能不是一个好的解决方案,但您可以尝试将图像加载到页面上隐藏 div 中的某个位置,以便在进行 ajax 调用并在 loadTopBanner 方法中使用它们之前将它们缓存起来。这样,轮播就不会在加载图像时显示任何延迟。
May not be a good solution but you can try to load the images somewhere on the page in a hidden div so that they will get cached before you make a ajax call and use them in loadTopBanner method. This way the carousel will not show any delay in loading the images.
如果您确实想要预加载图像,则不需要将它们放在隐藏的 div 中 - 您可以使用 Image 对象:
If you really want to preload images, you don't need to put them in a hidden div -- you can use the Image object: