javascript 图片loading的实现,zencart

 

我们在设计一些图片比较多的网页时,为了增强用户体验,希望图片加载的时候有个loading动画效果,而不是由空白到一下子出来。在zen cart的二次开发过程中同样也遇到了这个问题,下面是我的解决方案。

首页给图片设置一个默认的loading动画,再分配一个id,如<img id=”loading1″ src=”loading.gif”>实际上加载过程通过一个函数来完成

function addListener(element, type, expression, bubbling)

{

bubbling = bubbling || false;

if(window.addEventListener)       { // Standard

element.addEventListener(type, expression, bubbling);

return true;

} else if(window.attachEvent) { // IE

element.attachEvent('on' + type, expression);

return true;

} else return false;}

var ImageLoader = function(url){

this.url = url;

this.image = null;

this.loadEvent = null;

};

ImageLoader.prototype = {

load:function(){

this.image = document.createElement('img');

var url = this.url;

var image = this.image;

var loadEvent = this.loadEvent;

addListener(this.image, 'load', function(e){

if(loadEvent != null){

loadEvent(url, image);

}

}, false);

this.image.src = this.url;

},

getImage:function(){

return this.image;

}

};

function loadImage(objId,urls){

var loader = new ImageLoader(urls);

loader.loadEvent = function(url){

obj = document.getElementById(objId);

obj.src = url;

}

loader.load();

}

通过loadImage函数就可以为指定的图片添加加载过程,其中通过addListener 函数注册事件,使得在图片加载完成的时候能够自动替换掉loading.gif这个动画过渡图片。使用代码很简单

<img id=”loading1″ src=”loading.gif” />

<script language=”javascript”>

loadImage(”loading1″,”http://www.baidu.com/img/baidu_logo.gif”);

</script>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值