2016-04-30 4 views
0

私はパラメータを渡すときに画像をロードし、適切にサイズを調整する、以下のjavascript関数を取得しました。時々私は高さとサイズを知らないので、イメージの高さをリセットして(ブラウザーがイメージを適切にサイズ変更する)、widthまたはheightプロパティーを削除して、サイズで渡されないイメージが0に縮小されないようにします、0サイズ? JQueryの使用を避けたいスタイル属性にautoheight/widthプロパティを設定javascriptでイメージの寸法をリセットするには? (MVC)

function LoadPicture(picture,alt,text,height,width) 
{ 
    _img = document.getElementById('img') 
    _img.src = '/pic/' + picture + '.jpg'; 
    _img.alt = alt; 
    _img.title = text; 
    if (height+'' != '' && height>0) 
     _img.height = height; 
    else { 
     _img.height = null; 
    } 
    if (width+'' != '' && width > 0) 
     _img.width = width; 
    else _img.width = null; 

} 
+0

あなたがイメージからそれを読み取ることによって、動的にそれを得るために意味ですか? – LGSon

答えて

1

あなたはので、デフォルトのスタイリングは「キック」だろう、インラインスタイルを削除することができます:

if (height+'' != '' && height>0) 
     _img.height = height; 
    else { 
     _img.removeAttribute("height"); 
    } 
+0

それはうまくいったのですか? – MiscellaneousUser

+0

別の方法として、LGSonのようなスタイルプロパティを使用する方法があります。次に、_img.style.height = ""を使用して高さを削除します – yezzz

2

function LoadPicture(picture,alt,text,height,width) 
{ 
    _img = document.getElementById('img') 
    _img.src = '/pic/' + picture + '.jpg'; 
    _img.alt = alt; 
    _img.title = text; 
    if (height+'' != '' && height>0) 
     _img.style.height = height; 
    else { 
     _img.style.height = 'auto'; 
    } 
    if (width+'' != '' && width > 0) 
     _img.style.width = width; 
    else _img.style.width = 'auto'; 
} 

もう一つの方法は、ときにイメージをロード

var imgHeight; 
var imgWidth; 

function findHW() { 
    imgHeight = this.height; 
    imgWidth = this.width; 
    return true; 
} 

function showImage(imgPath) { 
    var myImage = new Image(); 
    myImage.name = imgPath; 
    myImage.onload = findHW; 
    myImage.src = imgPath; 
} 

のSrc height/widthを読み取ることであることを解決する必要があります。 Javascript - Get Image height

MDNで

より読み出し:https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement


サイドノート(Thomas製コメント)

image.naturalWidthimage.naturalHeightは常に自然画像の大きさ、スタイリング及びスケーリングの独立しを含みます。

+0

それはさらに働いた。 – MiscellaneousUser

+1

@ LGSon、 'myImage.naturalWidth'と' myImage.naturalHeight'を見てください。それらは常にスタイリングとスケーリングとは独立したイメージの自然な大きさを含んでいます。 – Thomas

+0

@トーマスその情報で私の答えを更新しました – LGSon

関連する問題