7

解決済み: 構文エラー

次のコードが機能します。

var image = {width:0,height:0};
var imageObject = new Image();
function getImageSize(id) {
    imageObject.src = id.attr("src");
    image.width = imageObject.width;
    image.height = imageObject.height;
}

元の質問

画像の元の幅と高さを取得したいのですが、それを実現するために別のコードを試しました。クリック イベントで関数がトリガーされ、すべての画像のサイズが 400x300 に変更されます。

次を使用して、イメージのサイズを元のサイズに変更しようとしましたauto

var image = {width:0,heigth:0};
function getImageSize(id) {
    id.css({
        'width': 'auto',
        'heigth': 'auto'
    });
    image.width = id.attr('width');
    image.heigth = id.attr('heigth');
}

添付autoしても画像のサイズは変わりませんでした。

alert(id.attr('width'));常に「未定義」を返します。だからうまくいかない

var image = {width:0,heigth:0};
var imageObject = new Image();
function getImageSize(id) {
    imageObject.src = id.attr("src");
    image.width = imageObject.width;
    image.heigth = imageObject.heigth;
}

alert(image.width);完璧に動作します。

alert(image.heigth);未定義を返します。

上記のように使用imageObject.naturalWidthすると、幅は正しく指定されますが、高さは未定義です。

新しい画像オブジェクトを追加する必要があると読みましたが、使用するimageObject.appendTo('body');と画像をクリックすることさえできません。

提案をありがとう。

4

1 に答える 1

2

これは、画像を変更後に元のサイズの画像に置き換える簡単な例です。

<img src="http://www.finesttreeserviceaz.com/wp-content/uploads/2012/02/tree2.gif" id="bar" />
<script type="text/javascript">
    var myImg = document.getElementById("bar");
    myImg.setAttribute("style", "width:400px;height:300px;");
    function resetBar() {
        var newImg = new Image();
        var oldImage = document.getElementById("bar");
        newImg.src = oldImage.src;
        oldImage.parentNode.replaceChild(newImg, oldImage);
    }
    setTimeout("resetBar();", 2000);
</script>

別の方法は、適用されたスタイルを削除することです。

myImg.removeAttribute("style");
于 2012-09-03T22:53:32.287 に答える