通过onload事件设置宽高的问题
async function setLatexSize(arr_latexImg, fontSize) {
for(let dom_img of arr_latexImg){
let newImg = new Image()
newImg.src = dom_img.src
await new Promise((resolve) => {
newImg.onload = function() {
dom_img.height = fontSize * newImg.height / 16
dom_img.width = fontSize * newImg.width / 16
dom_img.setAttribute('width', fontSize * newImg.width / 16);
dom_img.setAttribute('height', fontSize * newImg.height / 16);
resolve()
}
})
}
}
我想通过onload事件来改变图片的宽高,现在的问题是,我现在触发了onload,这时候在获取dom_img.height
显示的是改变后的高度,但是页面上的图片并没有变化,而我选中dom_img
的时候也没有指向页面中的元素,但是dom_img的src和页面中的图片确实是相同的。想问问这个是什么问题啊
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你是想获取图片真实宽高?Img元素有
naturalHeight/naturalWidth
这两个属性可以取到;然后再说这个无效的问题,设置宽高为啥设置attribute?img.style.width = '100px';属性的优先级很低的,任何一个css都可以覆盖你要看样式问题应该看style面板
我用你的方法测试了一下,可以正常的添加attr,也能正常的改变大小
你说元素上没有width和height属性而且划向它也不会指向页面中的图片,很大概率页面上那个元素就不是dom_img(你可以检查一下哪里出错了,看是输出错元素了吗)
另外可以检查一下传入的参数是否正确呢
我还有个问题,为什么要新建一个img而不是直接用dom_img呢?
另外:我也是新手,大家一起交流交流ヾ(≧▽≦*)o