所以我正在制作一个包含许多img
和video
元素的幻灯片,其中一些元素很大,所以我想“预加载”所有媒体资产,这样他们就没有滚动到它们所在的幻灯片时加载。
现在,根据我的理解,为了让img
元素真正加载你需要“使用”它并且黑客为此基本上
var url = $myimg.attr('src');
$myimg.attr('src') = '';
$myimg.attr('src') = url;
所以我知道我可以用
预先加载所有图像function LoadMediaAssets ( )
{
var $imgs = $('img'),
k = 0;
for ( var k = 0; k < $imgs.length; ++k )
{
var $img = $($imgs[k]),
url = $img.attr('src');
$img.attr('src') = '';
$img.attr('src') = url;
}
}
我的问题是如何将video
添加到混音中。你如何预加载视频?喜欢这个?
function LoadMediaAssets ( )
{
var $imgs = $('img'),
$vids = $('video'),
k = 0,
n = $imgs.length + $vids.length;
for ( var k = 0; k < $imgs.length; ++k )
{
var $img = $($imgs[k]),
url = $img.attr('src');
$img.attr('src') = '';
$img.attr('src') = url;
console.log("Progress : " + (++k/n * 100) + "%");
}
for ( var k = 0; k < $vids.length; ++k )
{
var $src = $($vids[k]).find('source'),
url = $src.attr('src');
$src.attr('src') = '';
$src.attr('src') = url;
console.log("Progress : " + (($imgs.length + (++k))/n * 100) + "%");
}
}
有更好的方法吗?