我在我的JavaScript代码中附加了一个图像,但想要获得正确的宽度和高度.这可能吗?我的代码看起来像这样:
$('body').append('
我知道如何在加载后获得图像宽度,但我正在加载一个img,并希望直接获得相应的宽度和高度.有小费吗?
最佳答案
HTML规范建议为< img>指定高度和宽度.作为视觉代理的提示,它混合了标记和样式规则,以构建HTML文档的可视化表示.在CSS框模型中,图像尺寸是固有的,即它们隐含在二进制blob中.这意味着浏览器必须等待HTTP响应才能确定图像的大小,以及如何布置和定位兄弟姐妹和父母.在HTML页面中指定尺寸有助于浏览器快速呈现页面,因为它可以在从服务器下载图像之前指定宽度和高度.
此时应该清楚的是,在下载之前无法访问客户端上的图像宽度.当Javascript知道它时,浏览器已经知道,并且您声明它对您的要求来说太迟了.
因此,提示浏览器的唯一选择是测量服务器端的图像.它可以在每个请求的基础上完成(但这是浪费资源),或者它可以在图像首次上载(然后从数据库中检索)时完成一次,或者最终可以假定为常量,例如如果它是一张个人资料图片,您的服务将始终增长或缩小为W x H像素大(这可能是一个配置参数).