时雨行 2021-09-01 11:41 采纳率: 42.9%
浏览 48

通过for循环遍历图片,onload来给图片重新设置宽高无效


async function setLatexSize(arr_latexImg, fontSize) {
        for (let i = 0;i< arr_latexImg.length;i++){
            let newImg = new Image()
            newImg.src = arr_latexImg[i].src
            await new Promise((resolve) => {
                newImg.onload = function() {
                    arr_latexImg[i].height = fontSize * newImg.height / 16
                    arr_latexImg[i].width = fontSize * newImg.width / 16
                    arr_latexImg[i].setAttribute('width', fontSize * newImg.width / 16);
                    arr_latexImg[i].setAttribute('height', fontSize * newImg.height / 16);
                    resolve()
                }
            })
        }
    }

我想跟踪字号的改变来设置图片的宽高,通过for循环遍历每一个img元素,之后通过onload里面来设置img元素的宽高,但是现在的问题是当我console出arr_latexImg[i]的时候,他标签上面是有宽高属性的,但是我页面中的元素本身依旧是原来的样子,没有变化

img

img

上面是页面中的元素标签,下面的图是我在console中显示的arr_latexImg[0]arr_latexImg[0]中的属性是设置上了,但是元素本身一九没有,
arr_latexImg这个数组是通过jq获取元素,完了each一个新的数组,下面是压缩后的代码。我想知道目前的问题是在哪块,是我方法哪块写的有问题吗

t = $("div.table").children().find("img.hex-exe-img"),
                        r = [];
                        $.each(t, function(e, n) {
                            r.push(t[e])
                        }),

  • 写回答

1条回答 默认 最新

  • 崽崽的谷雨 2021-09-01 12:02
    关注

    审查元素,样式加上了么。还是没加上,或者加上了没起作用。再onload里加个打印看看是否运行了, arr_latexImg[i].height 看看是否有值

    评论

报告相同问题?

问题事件

  • 创建了问题 9月1日

悬赏问题

  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮