多张图片onload需要一个个生成new Image()吗 ?

问题描述

v-html 时对html内容里的img宽度做限制,图片的onload需要一个个生成new Image() 吗

原先的写法只能改变第一张

mounted: function () {    this.$nextTick(function () {        var Img = new Image();        var imgs = $("#infoContent p img");
        imgs.each(function (i, v) {
            Img.src = v.src;
            Img.onload = function() {                if ($(v).width() > 630) {
                    $(v).css('width', '100%');
                }                                    
            }
        })
    })
}

更改后的

mounted: function () {    this.$nextTick(function () {        var imgs = $("#infoContent p img"), Img = [];
        imgs.each(function (i, v) {
            Img[i] = new Image();
            Img[i].src = v.src;
            Img[i].onload = function() {                if ($(v).width() > 630) {
                    $(v).css('width', '100%');
                }
            }
        })
    })
}

需要对每个img都new一下 有没有更好的写法


喵喵时光机
浏览 700回答 2
2回答

人到中年有点甜

应该能用css做到 试过max-width吗还有你这jq混写
打开App,查看更多内容
随时随地看视频慕课网APP