多张图片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一下 有没有更好的写法


一只萌萌小番薯
浏览 615回答 2
2回答

梵蒂冈之花

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

相关分类

JavaScript