以下代码有效:
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');
时,我甚至无法点击图片。
感谢您的任何建议。
答案 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");