我编写了这个简单的 jQuery 插件来帮助解决这个问题。
imgur.js
/*
Plugin: IMGUR
Author: Drew Dahlman ( www.drewdahlman.com )
Version: 0.0.2
*/
(function($) {
$.fn.imgur = function(options,loaded) {
var defaults = {
img: '',
}
if(loaded){
var callback = {
loaded: loaded
}
}
return this.each(function() {
var settings = $.extend(defaults,options);
var callbacks = $.extend(callback,loaded);
var _image;
var $this = $(this);
function init(){
if(callbacks.loaded != null){
_image = new Image();
_image.onLoad = loaded();
_image.src = settings.img;
}
}
function loaded(){
if(callbacks.loaded != null){
callbacks.loaded($this,settings.img);
}
}
init();
});
};
})(jQuery);
如何使用
如果要加载多个图像,请在 html 中分配一个类。
<img src='' data-image='images/image1.jpg' class='preload'/>
然后在您的 javascript 调用中(假设您使用的是 jQuery)
<script>
$(".preload").each(function(){
var $this = $(this);
$this.imgur({
img: $this.data('image') // in your case
},function(el,data){
el.attr('src',data);
});
});
</script>
这将使用数据图像来加载图像,然后在加载图像时将该数据添加到您提供给它的元素中。
干杯!