无法在 Chrome 中获取对象的真实高度/宽度
我有一个问题,如果我在 css 中设置图像高度并尝试获取高度/宽度,我会在不同的浏览器中得到不同的结果。有没有办法在所有浏览器中获得相同的尺寸?
找到一个实例
您可以在此处<-已删除并 这个概念是这样的:
CSS:
img{
height:100px;
}
Script:
$(document).ready(function(){
$("#text").append($("#img_0").attr("height"));
$("#text").append($("#img_0").attr("width"));
});
输出 Firefox: 图片高度:100 img 宽度:150
输出 Chrome: 图片高度:100 img 宽度:0
输出 Chrome: 图片高度:100 图片宽度:93?
我已经从 StackOverflow 尝试过这个: stackoverflow.com/questions/1873419/jquery-get-height-width
但仍然得到相同的结果
有人知道一个好的解决方案吗?
I have a question, if i set a image height in css and try to get height/width i get different results in different browsers. Is there a way to get the same dimension in all browsers?
You can find a live examplehere<-Removed
and the concept is like this:
CSS:
img{
height:100px;
}
Script:
$(document).ready(function(){
$("#text").append($("#img_0").attr("height"));
$("#text").append($("#img_0").attr("width"));
});
Output Firefox:
img height: 100
img width: 150
Output Chrome:
img height: 100
img width: 0
Output Chrome:
img height: 100
img width: 93?
i have tried this from StackOverflow:
stackoverflow.com/questions/1873419/jquery-get-height-width
but still get the same result
Any one know a good solution?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
图像未在
document.ready
中加载,您需要使用window.load
事件来确保它们存在,如下所示:这里快速了解差异 ,重要的部分是图片加载。
The images aren't loaded in
document.ready
, you need to use thewindow.load
event to make sure they're present, like this:Here's a quick read on the difference, the important part is that pictures are loaded.
Nick Craver 使用 $(window).load() 的答案是正确的,但图像也有一个 load() 方法,它允许更细的粒度,特别是如果可能有多个图像需要加载。
Nick Craver's answer to use $(window).load() is correct, but the images also have a load() method, which allows finer granularity, especially if there are perhaps multiple images to load.
看起来这是一个竞争条件,至少对我使用 Chrome 来说是这样。当您获取尺寸时,图像尚未完成加载。我将所有内容设置为在 200 毫秒超时后触发,并显示实际宽度/高度。
已在 Chrome、IE 和 Firefox 中测试并运行。全部显示 2008 x 3008。
It looks like it is a race condition, at least it was for me using Chrome. The image isn't finished loading at the time you are getting the dimensions. I set everything to fire after a 200ms timeout and the real width/height are displayed.
Tested and works in Chrome, IE and Firefox. All display 2008 x 3008.
替换
为
Opera 10.10 高度/宽度 2008 x 3008
Replace
with
Opera 10.10 height/width 2008 x 3008