想要实现的效果:图片固定按原始大小显示,不随窗口缩放而变化大小。
stackoverflow 查了一番,给的方案似乎都是将图片设置为 div 的 background 这样就不会跟着变了。
但同时我的需求上还需要获取图片宽高。
使用
let load_image = (src) => {
return new Promise((resolve, reject) => {
const img = new Image();
img.addEventListener('load', resolve(img));
img.addEventListener('error', reject(img));
img.src = src;
});
}
load_image(src).then((img) => {
img_div.style.background = "url("+src+") no-repeat scroll left top transparent";
console.log(img.width);
});
load_image('/url/to/img.jpg')
比较诡异的是 console.log(image.width);这行打印出来宽度是 0 ,理论上来说我没理解错的话这代码不是在图片 src 加载完成后才执行的回调,为啥会得到 0 的宽度呢。有啥方法获得实际宽高吗?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.