flex布局(图片自适应展示)

利用flex布局实现多张图片自适应展示

实现效果

图片排列
在这里插入图片描述

实现方式

我是利用flex布局来控制的.
在这里插入图片描述
这样子写的话会有一个问题,因为space-between是两端布局,若是一行的图片没有5个的话,他中间的间距会拉大,不会一直保持这个间距自适应。
最后加了一个计算的方法,来判断图片是否撑满了一行,若是没有撑满一行,则我们生成div,将图片撑满。

js:

/**flex布局计算一行放多少个,没放满往前挤
         * PIC_WIDTH: 图片的宽度
         * TOTAL: 代表你这一页展示多少个图片
         * w: 屏幕的宽度
         */
        caculate() {
            const PIC_WIDTH = 218;
            const TOTAL = this.posterData.length; // 这个是后端返回的一页的数据
            const PIC_MARGIN = 25;
            const w = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
            const count_in_row = parseInt((w || 1080) / (PIC_WIDTH + PIC_MARGIN)); // 一行放多少个,这里是5个
            const I = parseInt(TOTAL % count_in_row);
            const need_placeholder_count = I ? count_in_row - I : 0;
            this.allCount = parseInt(need_placeholder_count);
        },

html:

<div v-for="index in allCount" :key="`pick${index}`" class="pick"></div>

css:

.pick {
            content: '';
            width: $imgW;
            margin-right: 25px;
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值