预加载图像,(javascript源代码)
Preloading Image, (source in javascript)
我之前问过如何做一个javascript图像悬停效果,但是效果不允许图像预先预加载。我想知道是否有人可以帮助我改进/制作新的脚本,将预加载所请求的图像。下面是代码:
$('#nav li a img').each(function() {
var originalSrc = this.src,
hoverSrc = originalSrc.replace(/'.(gif|png|jpe?g)$/, '_hover.$1');
$(this).hover(function() {
this.src = hoverSrc;
}, function() {
this.src = originalSrc;
});
});
你可以使用一个通用的…
(function() {
var imgs = ['a.jpg', 'b.jpg'],
imgsLength = imgs.legnth,
index = 0,
loadNextImage = function() {
var image = new Image();
image.onload = function() {
if (index == imgsLength) {
return;
}
index++;
loadNextImage();
}
image.src = imgs[index];
}
}();
jsFiddle .
…或者对于您的具体示例…
$('#nav li a img').each(function() {
var originalSrc = this.src,
hoverSrc = originalSrc.replace(/'.(gif|png|jpe?g)$/, '_hover.$1');
image = new Image();
image.src = hoverSrc;
$(this).hover(function() {
this.src = hoverSrc;
}, function() {
this.src = originalSrc;
});
});
这将在JavaScript运行时加载它们。在它们的load
事件上没有处理程序,所以您可能希望添加一个并且在它们实际上被下载之前不显示悬停效果。
创建div并将你的翻转/悬停图像放在其中,然后隐藏div
<div style="display:none">
<img src="" />
<img src="" />
etc..
</div
这将加载图像,而不必使用javascript,但有一个已知的问题与Opera使用这种方法。但是我一直用它,效果很好
相关文章:
- Fido U2F客户端javascript源代码
- 在JavaScript源代码中使用UTF-8字符文字是否安全
- 来自网页的Javascript源代码
- 包含的javascript源代码通过PHP,onmousemove事件,函数未定义
- 在 JavaScript 源代码中回溯表达式
- JavaScript源代码中的换行符或空格/制表符有什么不同吗?(甚至在评论中!?
- Javascript源代码查找
- 加载 JavaScript 源代码不起作用
- JavaScript源代码中添加变量的问题
- JavaScript 源代码的组织模式导出
- 将 HTML 放在 Javascript 源代码中或使用 AJAX 检索 HTML
- 在 UIWebView 的 Safari Web Inspector 中查看 Javascript 源代码
- OutputScript没有't加载我的JavaScript源代码
- 使用Foundation的Javascript源代码引用问题
- 在Emacs中查找JavaScript源代码
- 使用“new Function(..) ”的安全注意事项“(在渲染期间,表达式来自我的 Javascript 源代码)
- 从backbeanJSF更新Javascript源代码
- Javascript源代码赢得't负载.有点
- 有没有一种快速的工具可以在不剥离JavaScript源代码中的注释的情况下执行恒定的替换?
- Javascript: "源代码在此位置不可用"使用IE调试时