


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
由于javascript无法获取img文件头数据,必须等待其加载完毕后才能获取真实的大小,所以lightbox类效果为了让图片居中显示,导致其速度体验要比直接输出的差很多。而本文所提到的预加载技术主要是让javascript快速获取图片头部数据的尺寸。一段典型的使用预加载获取图片大小的例子:var imgLoad = function (url, callback) var img = new Image();img.src = url;if (plete) callback(img.width, img.height); else img.onload = function () callback(img.width, img.height);img.onload = null;可以看到使用onload的方式必须等待图片加载完毕,其速度不敢恭维。web应用程序区别于桌面应用程序,响应速度才是最好的用户体验。如果想要速度与优雅兼得,那就必须提前获得图片尺寸,如何在图片没有加载完毕就能获取图片尺寸?十多年的上网经验告诉我:浏览器在加载图片的时候你会看到图片会先占用一块地然后才慢慢加载完毕,并且这里大部分的图片都是没有预设width与height属性的,因为浏览器能够获取图片的头部数据。基于此,只需要使用javascript定时侦测图片的尺寸状态便可得知图片尺寸就绪的状态。实现代码:var imgReady = function (url, callback, error) var width, height, intervalId, check, div,img = new Image(),body = document.body;img.src = url;/ 从缓存中读取if (plete) return callback(img.width, img.height);/ 通过占位提前获取图片头部数据if (body) div = document.createElement(div);div.style.cssText = visibility:hidden;position:absolute;left:0;top:0;width:1px;height:1px;overflow:hidden;div.appendChild(img)body.appendChild(div);width = img.offsetWidth;height = img.offsetHeight;check = function () if (img.offsetWidth != width | img.offsetHeight != height) clearInterval(intervalId);callback(img.offsetWidth, img.clientHeight);img.onload = null;div.innerHTML = ;div.parentNode.removeChild(div);intervalId = setInterval(check, 150);/ 加载完毕后方式获取img.onload = function () callback(img.width, img.height);img.onload = img.onerror = null;clearInterval(intervalId);body & img.parentNode.removeChild(img);/ 图片加载错误img.onerror = function () error & error();clearInterval(intervalId);body & img.parentNode.removeCh
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 维修作业区危险源考试试题及答案(修理工)
- 湖北省工程测量员理论模拟试题(附答案)
- 解析卷-吉林省双辽市七年级上册有理数及其运算同步测评试题(含详细解析)
- 推拿治疗学复习试题附参考答案详解(轻巧夺冠)
- 押题宝典期货从业资格之《期货法律法规》模考模拟试题附参考答案详解(考试直接用)
- 考点解析-辽宁省灯塔市中考数学真题分类(勾股定理)汇编章节练习试题(解析卷)
- 微型企业面试题库及完整答案详解(全优)
- 2025至2030年中国直接接触食品材料市场供需现状及投资战略研究报告
- 解析卷人教版8年级数学下册《平行四边形》定向练习试题(含详细解析)
- 2025版塑钢门窗材料行业技术培训与合作合同
- 农村教育现状分析
- 胆道疾病的检查与护理
- QGDW11970.7-2023输变电工程水土保持技术规程第7部分水土保持设施质量检验及评定
- 初中道德与法治学科阅读力培养的有效性探究
- JG/T 396-2012外墙用非承重纤维增强水泥板
- 预付电费协议书
- 2025年电动港机装卸机械司机(高级技师)职业技能鉴定理论考试题库(含答案)
- 酒吧消防火灾应急预案(3篇)
- 国企物业面试题目及答案
- 2024年会计法规综合考查试题及答案
- 鉴定机构运营管理制度
评论
0/150
提交评论