首頁  >  問答  >  主體

如何使用 JavaScript 或 jQuery 來取得影像的自然尺寸?

到目前為止我有這個程式碼:

var img = document.getElementById('draggable');
var width = img.clientWidth;
var height = img.clientHeight;

然而,這讓我獲得了 html 屬性 - css 樣式。我想獲取文件的實際圖像資源的尺寸。

我需要這個,因為上傳圖像後,它的寬度被設定為 0px,我不知道為什麼或在哪裡發生這種情況。為了防止這種情況,我想獲取實際尺寸並重​​置它們。這可能嗎?

編輯:即使當我嘗試取得naturalWidth時,結果也是0。我添加了一張圖片。奇怪的是,只有當我上傳新檔案時才會發生這種情況,並且刷新後它會正常工作。

http://oi39.tinypic.com/3582xq9.jpg

P粉916553895P粉916553895363 天前743

全部回覆(2)我來回復

  • P粉239164234

    P粉2391642342023-10-22 13:03:59

    img.naturalHeightimg.naturalWidth 為您提供圖像本身的寬度和高度,而不是 DOM 元素。

    回覆
    0
  • P粉148434742

    P粉1484347422023-10-22 09:42:28

    您可以使用naturalWidthnaturalHeight,這些屬性包含圖像的實際的、未修改的寬度和高度,但您必須等到圖像加載得到他們

    var img = document.getElementById('draggable');
    
    img.onload = function() {
        var width  = img.naturalWidth;
        var height = img.naturalHeight;
    }

    此功能僅支援IE9以上版本,如果您必須支援舊版瀏覽器,您可以建立一個新圖像,將其來源設定為相同的圖像,如果不修改圖像的大小,它將返回圖像的自然尺寸,因為當沒有給出其他尺寸時,這將是預設尺寸

    var img     = document.getElementById('draggable'),
        new_img = new Image();
    
    new_img.onload = function() {
        var width  = this.width,
            heigth = this.height;
    }
    
    new_img.src = img.src;

    FIDDLE

    回覆
    0
  • 取消回覆