JAVA、PHP、前端、APP、网站开发 - 开发技术学习

开发技术学习 » 前端设计 » jquery判断全部图片加载完,ajax加载图片,image()例子

jquery判断全部图片加载完,ajax加载图片,image()例子

今天在做jquery相册的时候,点击过快会造成图片不显示 因为图片地址是经过jquery ajax从数据中获取的地址,操作过快直接导致图片宽度和高度为0px; 在加载之前我处理过图片的信息,就是宽度和高度的的问题,如果过大会通过image()来处理,当过快就是没有处理完,直接显示“0px"了 最后查看了相关的资料通过以下方法解决了ajax加载图片无法完全加载的问题. 首先来看一下百度知道里面的提问 [php] 我用ajax请求服务器端返回了一个数组,里面是图片的src array( 'src1', 'src2' ... ) ajax返回成功后要在页面上用这些src生成新的img元素,我想在这些新生成的img都加载完之后,执行一些动作,该怎么做呢? 求教!!谢谢 [/php] 回答: [php] 先一个个push去插入图片,在最后个图片时,触发判断加载函数; 在函数里边去加载最后个图片的onload事件即可; 参考下原生的js写法: var n = new Image(); n.onload = function(){ //你想做的事 } n.src = "最后个图片的地址"; [/php] 再来看一下我的处理方法: [php] //设置图片宽度和高度 setImg: function(src){ var image = new Image(); image.onload = function(){ image.src = src; var thisheight = image.height;//图片高度 var thiswidth = image.width;//图片宽度 var loadingHeight = viewHeight - 100;//弹窗高度 var loadingWidth = parseInt(viewWidth) * 0.8;//弹窗宽度 //判断图片的宽度和高度是否超过弹窗的宽和高 if (thiswidth > (loadingWidth - 330)){ thisheight = (loadingWidth - 300) / thiswidth * thisheight; thiswidth = loadingWidth - 336; } if (thisheight > loadingHeight){ thiswidth = (loadingHeight - 20) / thisheight * thiswidth; thisheight = loadingHeight - 20; } var imgMarginTop = (loadingHeight - thisheight - 6)/2;//垂直居中 if (imgMarginTop < 0){ imgMarginTop = 3; } $("#imgload").css({ marginTop: imgMarginTop+'px', height: thisheight + 'px', width: thiswidth + 'px' }); } $("#imgload").attr('src',src); } [/php] 再放点关键字上来,为了百度联盟的账号早日通过,我天天写那个文章啊! 参考资料:http://zhidao.baidu.com/question/448201423.html

站点声明:部分内容源自互联网,为传播信息之用,如有侵权,请联系我们删除。

© Copyright 2011-2024 www.kfju.com. All Rights Reserved.
超级字帖 版权所有。 蜀ICP备12031064号      川公网安备51162302000234