如何获得图像的原始大小-Jquery

时间:2012-09-03 22:42:30

标签: jquery height width

已解决:语法错误

以下代码有效:

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'));始终返回'undefined'。所以它不起作用

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);返回undefined。

使用imageObject.naturalWidth如上所述 - 宽度正确,但高度未定义。

我读到你必须追加新的图片对象,但是当我使用imageObject.appendTo('body');时,我甚至无法点击图片。

感谢您的任何建议。

1 个答案:

答案 0 :(得分: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");