亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

js獲取圖片寬高的方法

2019-11-20 11:10:03
字體:
來源:轉載
供稿:網友

本文分享多種js獲取圖片寬高的方法,并且通過實例進行分析,希望大家從中有所收獲。

一、簡陋的獲取圖片方式

// 圖片地址 后面加時間戳是為了避免緩存var img_url = ‘upload/2013/13643608813441.jpg?'+Date.parse(new Date()); // 創建對象var img = new Image(); // 改變圖片的srcimg.src = img_url; // 打印alert('width:'+img.width+',height:'+img.height);

 結果如下:

寬高都是0的這個結果很正常,因為圖片的相關數據都沒有被加載前它的寬高默認就是0 于是可以這么優化!

二、onload后在打印

// 圖片地址 后面加時間戳是為了避免緩存var img_url = 'upload/2013/13643608813441.jpg?'+Date.parse(new Date()); // 創建對象var img = new Image(); // 改變圖片的srcimg.src = img_url; // 加載完成執行img.onload = function(){ // 打印 alert('width:'+img.width+',height:'+img.height);};

 結果如下

通過onload就能獲取到圖片的寬高了。但onload大一點的圖通常都比較慢,不實用,但只要圖片被瀏覽器緩存,那么圖片加載幾乎就不用等待即可觸發onload,我們要的是占位符。所以有些人通過緩存獲取也可以這么寫。

三、通過complete與onload一起混合使用
為了測試緩存效果,注意以下測試圖片的url都不加時間戳

// 圖片地址var img_url = 'upload/2013/13643608813441.jpg'; // 創建對象var img = new Image(); // 改變圖片的srcimg.src = img_url; // 判斷是否有緩存if(img.complete){ // 打印 alert('from:complete : width:'+img.width+',height:'+img.height);}else{ // 加載完成執行 img.onload = function(){ // 打印 alert('from:onload : width:'+img.width+',height:'+img.height); };}

 第一次執行,永遠是onload觸發

你再刷新,幾乎都是緩存觸發

從緩存里讀取圖片的寬高不用說,非常方便快捷,今天我們要解決的是沒有緩存而又快速的相比onload更快的方式去獲取圖片的寬高。我們常常知道有些圖片雖然沒有完全down下來,但是已經先有占位符,然后一點一點的加載。既然有占位符那應該是請求圖片資源服務器響應后返回的??煞掌魇裁磿r候響應并返回寬高的數據沒有觸發事件,比如onload事件。于是催生了第四種方法

四、通過定時循環檢測獲取
看看以下例子,為了避免從緩存里讀取數據,每一次請求都帶時間戳:

// 圖片地址var img_url = 'upload/2013/13643608813441.jpg?'+Date.parse(new Date()); // 創建對象var img = new Image(); // 改變圖片的srcimg.src = img_url; // 定時執行獲取寬高var check = function(){ document.body.innerHTML += 'from:check : width:'+img.width+',height:'+img.height+'';}; var set = setInterval(check,40); // 加載完成獲取寬高img.onload = function(){ document.body.innerHTML += 'from:onload : width:'+img.width+',height:'+img.height+'';  // 取消定時獲取寬高 clearInterval(set);};

 FireFox

IE7 8 9 10

Chrome

通過以上測試,我們發現定時檢測圖片寬高的方式要比onload快多了,打印的行數越多表示onload時間越長,40毫秒執行一次,基本100毫秒內就能獲取圖片的寬高,chrome甚至在第一次循環的時候就已經獲得數據。從以上數據來分析,其實我們可以在定時函數里判斷只要圖片的寬高都大于0就表示已經獲得正確的圖片寬高。我們把時間打上,來看看通過定時獲取寬高或者onload獲取寬高所需要多少時間。

// 記錄當前時間戳var start_time = new Date().getTime(); // 圖片地址var img_url = 'http://b.zol-img.com.cn/desk/bizhi/image/2/2560x1600/1365477614755.jpg?'+start_time; // 創建對象var img = new Image(); // 改變圖片的srcimg.src = img_url; // 定時執行獲取寬高var check = function(){ // 只要任何一方大于0 // 表示已經服務器已經返回寬高 if(img.width>0 || img.height>0){ var diff = new Date().getTime() - start_time; document.body.innerHTML += 'from:check : width:'+img.width+',height:'+img.height+', time:'+diff+'ms'; clearInterval(set); }}; var set = setInterval(check,40); // 加載完成獲取寬高img.onload = function(){ var diff = new Date().getTime() - start_time; document.body.innerHTML += 'from:onload : width:'+img.width+',height:'+img.height+', time:'+diff+'ms';};

 FireFox:

IE

Chrome

這是一張2560 * 1600大小的圖片,各瀏覽器執行結果都能看到通過快速獲取圖片大小的方法幾乎都在200毫秒以內,而onload至少五秒以上,這差別之大說明快速獲取圖片寬高非常實用。

通過大量實例分析比較了js獲取圖片寬高各種方法的優劣,希望大家根據需要認真取舍。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产欧美日韩精品丝袜高跟鞋| 8x海外华人永久免费日韩内陆视频| 国产成人在线亚洲欧美| 久久久久久久久久av| 国产精品久久77777| 91精品国产综合久久香蕉的用户体验| 国产精品7m视频| 最近的2019中文字幕免费一页| 中文字幕亚洲激情| 2019中文在线观看| 国产美女久久精品香蕉69| 91麻豆桃色免费看| 久久国产精品网站| 亚洲欧美在线播放| 91九色综合久久| 91社影院在线观看| 日韩av影院在线观看| 欧美精品制服第一页| 成人免费自拍视频| 欧美一区二区视频97| 亚洲偷熟乱区亚洲香蕉av| 91系列在线播放| 久久精品在线播放| 亚洲成在人线av| 最好看的2019的中文字幕视频| 欧美xxxx做受欧美.88| 亚洲欧美日韩国产中文| 黄网站色欧美视频| 午夜精品久久久久久久男人的天堂| 亚洲国产女人aaa毛片在线| 欧美视频中文字幕在线| 欧美综合国产精品久久丁香| 456亚洲影院| 久久久久久噜噜噜久久久精品| 最近2019年中文视频免费在线观看| 91九色在线视频| 欧美国产日韩一区二区三区| 国产精品久久久久7777婷婷| 久久亚洲精品中文字幕冲田杏梨| 亚洲精品欧美极品| 国产成人精品在线播放| 国产精品91免费在线| 国产丝袜一区二区三区| 亚洲精品一区二区久| 亚洲天堂av在线免费| 国产伊人精品在线| 亚洲直播在线一区| 精品毛片网大全| 欧美大片免费观看在线观看网站推荐| 黑人极品videos精品欧美裸| 精品无人区太爽高潮在线播放| 亚洲成人激情在线| 亚洲欧美激情精品一区二区| 午夜伦理精品一区| 2021久久精品国产99国产精品| 日韩a**中文字幕| 亚洲第一区第二区| 国产精品午夜一区二区欲梦| 欧美激情奇米色| 红桃视频成人在线观看| 日韩欧美一区二区三区久久| 亚洲激情在线观看视频免费| 欧美精品久久久久a| 91高潮在线观看| 97在线看免费观看视频在线观看| 亚洲精品自拍视频| 久久精品久久久久| 久久久国产一区二区三区| 久久99精品国产99久久6尤物| www.欧美精品| 欧美劲爆第一页| 亚洲色图色老头| 久久久久国色av免费观看性色| 亚洲在线一区二区| 久久男人资源视频| 亚洲国产精品电影在线观看| 欧美激情亚洲自拍| 亚洲aⅴ男人的天堂在线观看| 91在线色戒在线| 日韩免费观看av| 精品一区二区三区四区在线| 欧美一级电影久久| 91在线精品播放| 尤物tv国产一区| 中文字幕不卡av| 久久久久久12| 日韩国产高清污视频在线观看| 日韩www在线| 少妇久久久久久| 亚洲美女精品久久| 欧美成aaa人片在线观看蜜臀| 精品久久久久久亚洲国产300| 欧美视频专区一二在线观看| 亚洲天堂一区二区三区| 91精品国产高清自在线| 亚洲区中文字幕| 国产精品三级美女白浆呻吟| 98精品国产自产在线观看| 欧美精品久久久久久久免费观看| 久久久999精品| 欧美日韩亚洲激情| 亚洲综合成人婷婷小说| 欧美日本啪啪无遮挡网站| 欧美在线激情视频| 亚洲va电影大全| 亚洲国产精品女人久久久| 欧美在线视频一区| 亚洲国产精品成人va在线观看| 欧美精品成人91久久久久久久| 欧美—级高清免费播放| 精品免费在线观看| 黄色一区二区在线| 国产精品欧美日韩| 91久久久精品| 91久久久久久久一区二区| 日韩第一页在线| 欧美性猛交xxxx乱大交极品| 日韩电影大全免费观看2023年上| 国产日韩在线视频| 久久精品国产96久久久香蕉| 色婷婷综合久久久久中文字幕1| 欧美激情视频一区二区| 亚洲精品小视频| 欧美成人中文字幕在线| 欧美人与性动交| 精品亚洲一区二区三区四区五区| 97久久精品视频| 日韩成人黄色av| 中文欧美在线视频| 8x海外华人永久免费日韩内陆视频| 久久综合伊人77777蜜臀| 久久亚洲精品国产亚洲老地址| 久久久久久91香蕉国产| 日韩黄在线观看| 美女性感视频久久久| 国产亚洲精品va在线观看| 国产精品69精品一区二区三区| 精品福利免费观看| 97超碰蝌蚪网人人做人人爽| 中文在线资源观看视频网站免费不卡| 国产精品久久久久久久久借妻| 日韩电影视频免费| 日韩精品在线第一页| 国产精品日韩欧美| 欧美午夜精品久久久久久人妖| 主播福利视频一区| 欧美激情一区二区久久久| 精品亚洲国产视频| 国产精品免费视频久久久| 国产成人精品在线| 国产一区在线播放| 欧美孕妇性xx| 日韩电影中文字幕av| 久久av在线播放| 日韩在线激情视频| 91九色国产视频| 中文字幕久久久av一区| 成人性生交xxxxx网站| 日韩电影第一页| 亚洲另类图片色| 一区二区欧美日韩视频| 在线不卡国产精品| 国产精品一区二区三区成人| 欧美成人sm免费视频|