JS动态加载图片

      如下js可以载入一个还没有在页面中的图片,并且可以获得其高度和宽度:

复制代码
function EnhancedImage(src,onLoaded){
    
var self = this;
    
this.src = src;
    
this.width = 0;
    
this.height = 0;
    
this.onLoaded = onLoaded;
    
this.loaded = false;
    
this.image = null;
    
    
this.load = function(){
        
if(this.loaded)
            
return;
        
this.image = new Image();
        
this.image.src = this.src;
        
function loadImage(){
            
if(self.width != 0 && self.height != 0){
                clearInterval(interval);
                self.loaded 
= true;
                self.onLoaded(self);
//将实例传入回调函数
            }
            self.width 
= self.image.width;//是number类型
            self.height = self.image.height;
        }
        
var interval = setInterval(loadImage,100);
    }
}
复制代码

      总的原理就是new一个Image对象,设置了src属性过后,不断的检查需要载入的图片的宽和高,如果载入图片成功的话,宽和高都是不为0的数值,这个时候停止Interval ,并且执行onLoaded。

      这段js代码的使用方法:

复制代码
var img = new EnhancedImage("http://www.google.cn/intl/zh-CN/images/logo_cn.gif",onImageLoad);
function onImageLoad(image){
    document.body.appendChild(image.image);
    alert(
"image loaded and the size is " + image.width + "*" + image.height);
}

function Button1_onclick() {
    img.load();
}
复制代码

 

 

posted @   LongWay  阅读(10220)  评论(5编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示