如何在html/javascript中使用dom检索图像的大小
How to retrieve an image's size using dom in html/javascript?
我正在尝试使用这种代码在javascript中获取图像的大小:
var image = document.createElement("img");
image.src = "http://home.cse.ust.hk/~rossiter/mooc/matching_game/smile.png";
然后我一直在尝试使用 image.width
或 image.naturalWidth
来获取图像的宽度,但它检索到 0。
使用上述代码创建元素后。您可以使用
image.height
image.width
之所以得到 0,是因为当您执行语句时,它不会加载。您必须等到加载图像并执行语句。您可以使用document.ready
但问题是它在那里可能不是 100% 准确的。
参考:在执行某些操作之前要求jQuery等待所有图像加载的官方方法
您可以使用window.load(使用jquery),但根据上述文章,这是有风险的。
为了获得最佳解决方案,您可以使用 lib https://github.com/desandro/imagesloaded。
您可以使用@Raman的技术,但问题是您必须将事件侦听器附加到每个图像,这可能会变得团块。
如果您使用的是 imagesloaded,则可以监视要加载的图像的容器并相应地执行代码。
杰斯菲德尔:https://jsfiddle.net/52q0juq6/1/
您需要
根据图像的load
计算图像尺寸。这是一个小提琴来证明这一点。
image.addEventListener('load', function(){
console.log(image.width);
console.log(image.height);
});
这是因为图像尚未加载。
<html>
<img id="theImage" src="http://home.cse.ust.hk/~rossiter/mooc/matching_game/smile.png" />
<button id="Ok" value="Ok" onclick="ShowImageWidth()" />
<script type="text/JavaScript">
//This runs when the page loads and shows 0
var element = document.getElementById('theImage');
alert(element.width);
//This runs AFTER the page has loaded and the button is clicked and shows 100
function ShowImageWidth() {
var element = document.getElementById('theImage');
alert(element.width);
}
</script>
</html>
相关文章:
- 使用promise通过外部函数从DOM中检索属性
- 以文本形式检索对象元素中的SVG Dom
- 如何使用JQuery检索完整的DOM结构,其中输入只是一个按钮
- 使用Internet Explorer检索XML DOM对象的URI
- 如何从 DOM 元素检索数据并将其推送到数组中
- Jquery - 无法获取检索到的 xml 文件以填充 DOM
- 为什么我不能检索DOM元素的CSS背景属性
- 如何按顺序检索特定 DOM 元素的所有 index() 值
- 如何使用 DOM 显示消息和检索文件名
- 通过javascript检索网页的实际DOM/css状态
- 如何在html/javascript中使用dom检索图像的大小
- 将数据绑定到Meteor 1.2中的DOM元素并从中检索数据
- 用于存储/检索Backbone.js的模式查看与dom元素关联的实例
- 如何检索自定义DOM属性的值
- 检索纯Java中呈现的HTML DOM
- 如何检索样式.顶部用DOM,还有其他方法吗?
- 在Ionic 2中按id检索DOM元素
- 从站点检索 DOM 数据
- 如何检索DOM text节点的文本
- 使用javascript存储(和检索!)dom元素特定数据的最佳方式