欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Javascript獲取圖片原始寬度和高度的方法詳解

 更新時(shí)間:2016年09月20日 08:36:35   投稿:daisy  
這篇文章用實(shí)例代碼講述了JavaScript如何獲取頁面圖片原始尺寸的方法,現(xiàn)在分享給大家供大家參考學(xué)習(xí),有需要的可以一起來看看。

前言

網(wǎng)上關(guān)于利用Javascript獲取圖片原始寬度和高度的方法有很多,本文將再次給大家談?wù)勥@個(gè)問題,或許會(huì)對(duì)一些人能有所幫助。

方法詳解

頁面中的img元素,想要獲取它的原始尺寸,以寬度為例,可能首先想到的是元素的innerWidth屬性,或者jQuery中的width()方法。

如下:

<img id="img" src="1.jpg">

<script type="text/javascript">
 var img = document.getElementById("img");
 console.log(img.innerWidth); // 600
</script>

這樣貌似可以拿到圖片的尺寸。

但是如果給img元素增加了width屬性,比如圖片實(shí)際寬度是600,設(shè)置了width為400。這時(shí)候innerWidth為400,而不是600。顯然,用innerWidth獲取圖片原始尺寸是不靠譜的。

這是因?yàn)?innerWidth屬性獲取的是元素盒模型的實(shí)際渲染的寬度,而不是圖片的原始寬度。

<img id="img" src="1.jpg" width="400">

<script type="text/javascript">
 var img = document.getElementById("img");
 console.log(img.innerWidth); // 400
</script>

jQuery的width()方法在底層調(diào)用的是innerWidth屬性,所以width()方法獲取的寬度也不是圖片的原始寬度。

那么該怎么獲取img元素的原始寬度呢?

naturalWidth / naturalHeight

HTML5提供了一個(gè)新屬性naturalWidth/naturalHeight可以直接獲取圖片的原始寬高。這兩個(gè)屬性在Firefox/Chrome/Safari/Opera及IE9里已經(jīng)實(shí)現(xiàn)。

如下:

var naturalWidth = document.getElementById('img').naturalWidth,
 naturalHeight = document.getElementById('img').naturalHeight;

naturalWidth / naturalHeight在各大瀏覽器中的兼容性如下:

圖片截取自http://caniuse.com/#search=naturalWidth

所以,如果不考慮兼容至IE8的,可以放心使用naturalWidth / naturalHeight屬性了。

IE7/8中的兼容性實(shí)現(xiàn):

在IE8及以前版本的瀏覽器并不支持naturalWidth和naturalHeight屬性。

在IE7/8中,我們可以采用new Image()的方式來獲取圖片的原始尺寸,如下:

function getNaturalSize (Domlement) {
 var img = new Image();
 img.src = DomElement.src;
 return {
  width: img.width,
  height: img.height
 };
}

// 使用
var natural = getNaturalSize (document.getElementById('img')),
 natureWidth = natural.width,
 natureHeight = natural.height;

IE7+瀏覽器都能兼容的函數(shù)封裝:

function getNaturalSize (Domlement) {
 var natureSize = {};
 if(window.naturalWidth && window.naturalHeight) {
  natureSize.width = Domlement.naturalWidth;
  natureSizeheight = Domlement.naturalHeight;
 } else {
  var img = new Image();
  img.src = DomElement.src;
  natureSize.width = img.width;
  natureSizeheight = img.height;
 }
 return natureSize;
}

// 使用
var natural = getNaturalSize (document.getElementById('img')),
 natureWidth = natural.width,
 natureHeight = natural.height;

總結(jié)

以上就是這篇文章的全部內(nèi)容,希望能對(duì)大家的學(xué)習(xí)或者工作帶來一定的幫助。如果有疑問大家可以留言交流。

相關(guān)文章

  • JS前端中WebSocket的使用方法舉例

    JS前端中WebSocket的使用方法舉例

    websocket是H5才開始提供的一種在單個(gè)TCP連接上進(jìn)行全雙工通訊的協(xié)議,下面這篇文章主要給大家介紹了關(guān)于JS前端中WebSocket使用的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-03-03
  • javascript eval函數(shù)深入認(rèn)識(shí)

    javascript eval函數(shù)深入認(rèn)識(shí)

    發(fā)現(xiàn)為本文起一個(gè)合適的標(biāo)題還不是那么容易,呵呵,所以在此先說明下本文的兩個(gè)目的
    2009-02-02
  • JS利用原生canvas實(shí)現(xiàn)圖形標(biāo)注功能

    JS利用原生canvas實(shí)現(xiàn)圖形標(biāo)注功能

    這篇文章主要為大家詳細(xì)介紹了JS如何利用原生canvas實(shí)現(xiàn)圖形標(biāo)注功能,支持矩形、多邊形、線段、圓形等已繪制的圖形進(jìn)行縮放,移動(dòng),需要的可以參考下
    2024-03-03
  • 用js簡單提供增刪改查接口

    用js簡單提供增刪改查接口

    這篇文章主要介紹了用js簡單提供增刪改查接口,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • GRID拖拽行的實(shí)例代碼

    GRID拖拽行的實(shí)例代碼

    這篇文章介紹了GRID拖拽行的實(shí)例代碼,有需要的朋友可以參考一下
    2013-07-07
  • js left,right,mid函數(shù)

    js left,right,mid函數(shù)

    在JAVASCRIPT中LEFT,RIGHT,MID函數(shù)的等價(jià)函數(shù),非常適合經(jīng)常用寫asp的朋友
    2008-06-06
  • js實(shí)現(xiàn)時(shí)間顯示幾天前、幾小時(shí)前或者幾分鐘前的方法集錦

    js實(shí)現(xiàn)時(shí)間顯示幾天前、幾小時(shí)前或者幾分鐘前的方法集錦

    這篇文章主要介紹了js實(shí)現(xiàn)時(shí)間顯示幾天前、幾小時(shí)前或者幾分鐘前的方法,實(shí)例匯總分析了時(shí)間顯示格式轉(zhuǎn)換的常用思路與技巧,需要的朋友可以參考下
    2015-05-05
  • 詳解XMLHttpRequest(一)同步請(qǐng)求和異步請(qǐng)求

    詳解XMLHttpRequest(一)同步請(qǐng)求和異步請(qǐng)求

    這篇文章主要為大家詳細(xì)介紹了XMLHttpRequest 同步請(qǐng)求和異步請(qǐng)求,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • javascript中select下拉框的用法總結(jié)

    javascript中select下拉框的用法總結(jié)

    這篇文章主要為大家介紹了javascript中select下拉框的用法,select在開發(fā)中經(jīng)常被用到,用于進(jìn)行選項(xiàng)選擇,需要的朋友可以參考下
    2016-01-01
  • 詳解Howler.js Web音頻播放終極解決方案

    詳解Howler.js Web音頻播放終極解決方案

    這篇文章主要介紹了詳解Howler.js Web音頻播放終極解決方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08

最新評(píng)論