一本一本久久a久久精品综合,啦啦啦视频免费播放在线观看,六十六十路熟妇高熟在线,老头解开奶罩吸奶头高潮视频,一本久久a久久免费精品不卡,顶级欧美熟妇高清xxxxx,爆乳熟妇一区二区三区霸乳,无码h黄肉3d动漫在线观看

綠色資源網:您身邊最放心的安全下載站! 最新軟件|熱門排行|軟件分類|軟件專題|廠商大全

綠色資源網

技術教程
您的位置:首頁網頁設計網頁特效 → javascript圖片預加載技術

javascript圖片預加載技術

我要評論 2011/03/15 09:55:50 來源:綠色資源網 編輯:綠色資源站 [ ] 評論:0 點擊:229次

由于javascript無法獲取img文件頭數據,必須等待其加載完畢后才能獲取真實的大小,所以lightbox類效果為了讓圖片居中顯示,導致其速度體驗要比直接輸出的差很多。而本文所提到的預加載技術主要是讓javascript快速獲取圖片頭部數據的尺寸。

一段典型的使用預加載獲取圖片大小的例子:

var imgLoad = function (url, callback) {
var img = new Image();

img.src = url;
if (img.complete) {
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 (img.complete) {
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.removeChild(img);
};

};

是不是很簡單?這樣的方式獲取攝影級別照片尺寸的速度往往是onload方式的幾十多倍,而對于web普通(800×600內)瀏覽級別的圖片能達到秒殺效果。

關鍵詞:javascript

閱讀本文后您有什么感想? 已有 人給出評價!

  • 0 歡迎喜歡
  • 0 白癡
  • 0 拜托
  • 0 哇
  • 0 加油
  • 0 鄙視
主站蜘蛛池模板: 美女内射毛片在线看| 小蜜被两老头吸奶头| 日本猛少妇色xxxxx猛交| 婷婷久久香蕉五月综合加勒比| 国产成人午夜高潮毛片| 疯狂做受xxxx国产| 国产精品久久久久久| 男人吃奶摸下挵进去啪啪软件| tube8日本少妇高潮| 无遮挡男女激烈动态图| 日韩av一区二区三区三州| 狠狠色噜噜狠狠狠狠97首创麻豆| 人人爽久久涩噜噜噜av| 亚洲情a成黄在线观看| 欧美性巨大╳╳╳╳╳高跟鞋 | 国产性夜夜春夜夜爽| 亚洲情+欧美| 免费欧洲美女牲交视频| yyyy在线在片| 国产午夜不卡av免费| 又色又爽又高潮免费视频国产| 少妇┅┅快┅┅用力| 肉大捧一进一出免费视频 | 18禁勿入午夜网站入口| 中国女人68xxxxxxxxx| 樱桃的成熟时2| 99这里只有是精品2| 亚洲高清国产拍精品熟女| 天天躁日日躁狠狠躁视频2021| 免费午夜爽爽爽www视频十八禁| 边吻奶边挵进去gif动态图| 欧美性受xxxx黑人xyx性爽同性恋| 一个人看的视频www在线| 最近国语视频免费观看在线播放| 456亚洲影院| 国模晨雨浓密毛大尺度150p| 免费无码又爽又高潮视频| 国产人妖视频一区二区| 人妻无码一区二区三区四区| 少妇高潮叫床在线播放| 亚洲小说区图片区另类春色|