问题:
我一直在尝试创建一个站点,该站点在 AnySlider 的幻灯片中包含嵌入的 iframe(8tracks.com 播放列表)。页面完全加载后,一切正常,嵌入 iframe 运行良好,只是我有这么多内容(8 个不同类型的滑动面板),在某些情况下需要 30 多秒才能将所有 8 个滑动面板加载为一个大热门所以我想在请求幻灯片页面时延迟加载嵌入的 iframe 内容,但我无法为此目的调整图像延迟加载编码。
迄今为止的尝试:
我想我可以简单地将来自 AnythingSlider 记录的图像延迟加载编码的 img 标签引用与 iframe 的图像交换,因为它们都只是对 src 的引用,所以它可以工作,但到目前为止这已被证明不是就是这样。下面的代码为图库中的图像启用了延迟加载,但是将其切换到 iframe 到目前为止还没有奏效:
// This part of the code is
// for demo purposes only
// *************************
var message = function(file, p, l) {
var txt = l ? '<i>loading #' + p + '</i>' : '<b>preventing load #' + p + '</b>';
// show loading message
$('.message').append('<li>' + txt + ': ' + file + '</li>').find('li:first').remove();
};
// The code above is for this demo only
// *************************
// load image
var loadImg = function(slider, page) {
slider.$items.eq(page).find('iframe').each(function() {
if ($(this).attr('src') === '') {
var newsrc = $(this).attr('data-src');
$(this).attr('src', newsrc);
// update loading message
message(newsrc, page, true); // *** for demo only ***
}
});
};
$('#slider').anythingSlider({
resizeContents: false,
// *********** Callbacks ***********
// Callback when the plugin finished initializing
onInitialized: function(e, slider) {
var start = slider.options.startPanel;
// allow start & cloned panel images to load
// the rest get the src removed.
slider.$items.eq(start).siblings(':not(.cloned)').find('iframe').each(function() {
var $el = $(this);
$el.attr('src', function(i, src) {
if (src !== '') {
$el.attr('data-src', src);
// update loading message
message(src, i + 1, false); // *** for demo only ***
}
return '';
});
});
// load current image
loadImg(slider, slider.currentPage);
// load first cloned slide #0
loadImg(slider, 0);
// load last cloned slide #6
loadImg(slider, slider.pages+1);
},
// Callback when slide initiates, before control animation
onSlideInit: function(e, slider) {
// preload the targeted page image
loadImg(slider, slider.targetPage);
}
});
如果您甚至可以帮助我指出正确的方向,我将非常感激,因为这几乎是我在整个站点中尚未解决的最后一个小问题。
这是页面的框架,其中包含所有需要的组件作为 zip 包 (200kb),如果有帮助,请从我的保管箱链接.. http://dl.dropbox.com/u/23417244/AnythingSlider.zip
非常感谢您的帮助!!-布拉德