可以编写一个预先加载所有图像和视频的JavaScript程序
It is possible to write a JavaScript procedure that pre-loads all images and videos?
场景:我有一个HTML/CSS/JavaScript幻灯片,其幻灯片是类似的div
<div class="slide" id="slide1">
...
</div>
<div class="slide" id="slide2">
...
</div>
.
.
.
<div class="slide" id="slideN">
...
</div>
这些CCD_ 2包含CCD_ 3和CCD_。我想知道是否存在这样做的通用过程,一个我可以添加或减少媒体元素的过程,它仍然有效,因为该过程不依赖于特定元素的src
属性或其他什么。据我所知,这需要做一件棘手的事情,删除src
属性,然后再添加回
$(function(){
var $images = $('.slide img'),
$videos = $('.slide video'),
k = 0,
n = $images.length + $videos.length;
$images.each(function(){
var src = $(this).attr('src');
$(this).attr('src') = '';
$(this).attr('src') = src;
console.log(k++/n * 100 + "%");
});
$videos.each(function(){
var src = $(this).attr('src');
$(this).attr('src') = '';
$(this).attr('src') = src;
console.log(k++/n * 100 + "%");
});
$('.slide').show(); // now we're ready!
});
这是正确的吗?为什么?
(相关的注意事项是,是否可以合并两个jQuery结果集,这样我就不必在上面写两个each
循环了?)
我所看到的方法总是涉及到要加载的图像的URL数组,比如的例子
var images = [];
function preload() {
for (i = 0; i < arguments.length; i++) {
images[i] = new Image();
images[i].src = preload.arguments[i];
}
}
//-- usage --//
preload(
"http://domain.tld/gallery/image-001.jpg",
"http://domain.tld/gallery/image-002.jpg",
"http://domain.tld/gallery/image-003.jpg"
)
来自JavaScript预加载图像
这在我看来还不够普遍。
您可以立即加载每一个,并将它们放在设置了display:none
的"bank"部分中,这样它们就不可见了。浏览器会缓存它们,一旦您准备好,它们就会显示出来。
相关文章:
- 在通过child.print()打印之前,我如何等待图像加载到我的新窗口中
- 在检索数据时是否可以停止图像加载请求
- 如何让我的网站上的WEBP图像加载在morzilla firefox中有一个可能的解决方案吗?如果是,那么如何
- jQuery:获取图像加载错误的详细信息
- 在safari和chrome中,js图像加载产生了奇怪的结果
- 图像加载不适用于 IE 8 或更低版本
- 这个图像加载功能有什么作用
- JavaScript 图像加载器不起作用
- 动态图像加载是否会减少服务器过载
- 跨来源图像加载被拒绝-仅限iPhone-简单图像上传
- 纯javascript的进度图像加载程序仅当用户单击提交html表单时
- 使用JavaScript延迟图像加载
- 如果当前图像加载缓慢,如何加载其他图像
- HTML图像加载触发一个错误
- 将图像加载到localStorage,并将图像src设置到该位置
- jquery图像加载检查错误
- 将图像加载到织物画布背景中
- 需要在bootstrap css中单击时将图像加载为模态
- 正在显示加载..在将新图像加载到网站时播放动画
- 砖石事件:在图像加载和布局完成后调用事件