小程序多图片组合
目录
子组件 index.js
子组件 index.wxml
子组件 index.wxss
父组件引用:

子组件:preview-image
子组件 index.js
Component({properties: {previewData: {type: Array,default: [],observer: function (newVal, oldVal) {console.log('newVal, oldVal', newVal, oldVal);const previewImages = [];newVal.map(item => {previewImages.push(item);});this.setData({previewImages});this.formatImageList(newVal);}}},data: {previewImages: [],imgArr: [],boxClass: 'one'},methods: {formatImageList(imageArr) {console.log('imageArr---', imageArr);const arrLength = imageArr.length;if (arrLength == 1) {this.setData({imgArr: imageArr,boxClass: 'one'});}if (arrLength == 2) {this.setData({imgArr: imageArr,boxClass: 'two'});}if (arrLength == 3) {const firstArr = [...imageArr.splice(0, 1)];const threeArr = [[...firstArr], [...imageArr]];this.setData({imgArr: threeArr,boxClass: 'three'});}if (arrLength == 4) {this.setData({imgArr: imageArr,boxClass: 'four'});}if (arrLength == 5) {const firstArr = [...imageArr.splice(0, 1)];const fiveArr = [[...firstArr], [...imageArr]];this.setData({imgArr: fiveArr,boxClass: 'five'});}if (arrLength == 6) {this.setData({imgArr: imageArr,boxClass: 'six'});}if (arrLength == 7) {const firstArr = [...imageArr.splice(0, 1)];const secondArr = [...imageArr.splice(0, 4)]const sevenArr = [[...firstArr], [...secondArr], [...imageArr]];console.log('sevenArr', sevenArr);this.setData({imgArr: sevenArr,boxClass: 'seven'});}if (arrLength == 8) {const firstArr = [...imageArr.splice(0, 1)];const secondArr = [...imageArr.splice(0, 4)]const eightArr = [[...firstArr], [...secondArr], [...imageArr]];console.log('eightArr', eightArr);this.setData({imgArr: eightArr,boxClass: 'eight'});}if (arrLength >= 9) {const firstArr = [...imageArr.splice(0, 1)];const secondArr = [...imageArr.splice(0, 4)]const nineArr = [[...firstArr], [...secondArr], [...imageArr]];console.log('nineArr', nineArr);this.setData({imgArr: nineArr,boxClass: 'nine'});}},onImageMore(e) {console.log('onImageMore', e);const {url} = e.currentTarget.dataset;const {previewImages} = this.data;wx.previewImage({urls: previewImages,current: url});}}
});
子组件 index.wxml
<view class="preview-img {{boxClass}}"wx:if="{{previewImages.length == 3 || previewImages.length == 5 || previewImages.length == 7 || previewImages.length == 8 || previewImages.length >= 9}}"><view class="img-box" wx:for="{{imgArr}}" wx:key="index"><block wx:for="{{item}}" wx:for-item="_item" wx:for-index="_index" wx:key="_index"><view class="box-image" wx:if="{{_index <= 3}}"><image mode="scaleToFill" src="{{_item}}"></image><view class="box-image-shade" data-url="{{_item}}" bindtap="onImageMore"wx:if="{{item.length > 4 && _index == 3}}"><view class="shade-more"><van-icon name="arrow"/><van-icon name="arrow" custom-style="margin-left:-16rpx;"/></view><view>{{previewImages.length}}张</view></view></view></block></view>
</view>
<view class="preview-img {{boxClass}}" wx:else><view class="box-image" wx:for="{{imgArr}}" wx:key="index"><image mode="scaleToFill" src="{{item}}"></image></view>
</view>
子组件 index.wxss
.preview-img {padding: 16rpx 5rpx 0;box-sizing: border-box;
}.box-image {margin-top: 10rpx;width: 315rpx;height: 315rpx;border-radius: 6rpx;overflow: hidden;
}.box-image image {width: 100%;height: 100%;display: block;
}.two {display: flex;align-items: center;justify-content: flex-start;
}.two .box-image + .box-image {margin-left: 12rpx;
}.three, .five, .seven, .eight, .nine {display: flex;align-items: center;justify-content: flex-start;
}.three .img-box + .img-box {margin-left: 12rpx;
}.three .img-box + .img-box .box-image {width: 154rpx;height: 153rpx;
}.four {display: flex;flex-wrap: wrap;align-items: center;justify-content: flex-start;
}.four .box-image {width: 205rpx;height: 205rpx;margin-right: 14rpx;margin-top: 14rpx;
}.five .img-box + .img-box {margin-left: 12rpx;display: flex;justify-content: space-between;flex-wrap: wrap;
}.five .img-box + .img-box .box-image {width: 153rpx;height: 153rpx;
}.six {display: flex;flex-wrap: wrap;align-items: center;justify-content: space-between;
}.six .box-image {width: 205rpx;height: 205rpx;margin-top: 14rpx;
}.seven, .eight, .nine {flex-wrap: wrap;
}.seven .img-box:nth-child(2), .eight .img-box:nth-child(2), .nine .img-box:nth-child(2) {margin-left: 12rpx;display: flex;justify-content: space-between;flex-wrap: wrap;width: 315rpx;
}.seven .img-box:nth-child(2) .box-image, .eight .img-box:nth-child(2) .box-image, .nine .img-box:nth-child(2) .box-image {width: 153rpx;height: 153rpx;
}.seven .img-box:nth-child(3) {width: 100%;display: flex;align-items: center;justify-content: flex-start;
}.seven .img-box:nth-child(3) .box-image + .box-image {margin-left: 12rpx;margin-top: 14rpx;width: 315rpx;
}.eight .img-box:nth-child(3), .nine .img-box:nth-child(3) {width: 100%;display: flex;align-items: center;justify-content: space-between;
}.eight .img-box:nth-child(3) .box-image {width: 206rpx;height: 206rpx;margin-top: 14rpx;
}.nine .img-box:nth-child(3) .box-image {width: 152rpx;height: 152rpx;margin-top: 12rpx;position: relative;
}.box-image-shade {width: 152rpx;height: 152rpx;position: absolute;top: 0;left: 0;background-color: rgba(0, 0, 0, 0.55);text-align: center;font-size: 28rpx;font-family: PingFang-SC-Medium, PingFang-SC;font-weight: 500;color: #FFFFFF;line-height: 42rpx;padding-top: 36rpx;box-sizing: border-box;
}
父组件引用:
引用的时候在外层包一个盒子设置宽度
wxml:
<preview-image model:preview-data="{{limagePreviewArn}}"></preview-image>
js:
data: {limagePreviewArn: ["https://fuss10.elemecdn.com/a/3f/3302e58f9a181d2509f3dc0fa68b0jpeg.jpeg","https://img01.yzcdn.cn/vant/apple-1.jpg","https://img01.yzcdn.cn/vant/apple-2.jpg","https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg","https://fuss10.elemecdn.com/1/8e/aeffeb4de74e2fde4bd74fc7b4486jpeg.jpeg","https://fuss10.elemecdn.com/9/bb/e27858e973f5d7d3904835f46abbdjpeg.jpeg","https://fuss10.elemecdn.com/d/e6/c4d93a3805b3ce3f323f7974e6f78jpeg.jpeg","https://fuss10.elemecdn.com/3/28/bbf893f792f03a54408b3b7a7ebf0jpeg.jpeg","https://fuss10.elemecdn.com/2/11/6535bcfb26e4c79b48ddde44f4b6fjpeg.jpeg","https://fuss10.elemecdn.com/1/34/19aa98b1fcb2781c4fba33d850549jpeg.jpeg","https://img01.yzcdn.cn/vant/cat.jpeg",]},
相关文章:
小程序多图片组合
目录 子组件 index.js 子组件 index.wxml 子组件 index.wxss 父组件引用: 子组件:preview-image 子组件 index.js Component({properties: {previewData: {type: Array,default: [],observer: function (newVal, oldVal) {console.log(newVal, ol…...
YOLO v8目标跟踪详细解读(二)
上一篇,结合代码,我们详细的介绍了YOLOV8目标跟踪的Pipeline。大家应该对跟踪的流程有了大致的了解,下面我们将对跟踪中出现的卡尔曼滤波进行解读。 1.卡尔曼滤波器介绍 卡尔曼滤波(kalman Filtering)是一种利用线性…...
【广州华锐视点】AR电力职业技能培训系统让技能学习更“智慧”
随着科技的发展,教育方式也在不断地进步和创新。其中,增强现实(AR)技术的出现,为教育领域带来了全新的可能。AR电力职业技能培训系统就是这种创新教学方法的完美实践,它将虚拟与现实相结合,为学生提供了一个沉浸式的学…...
C#学习,反射
目录 C#学习 .NET的体系结构 二次编译 反射 什么是反射? 什么是Type? 什么是程序集? 反射API: 一,程序集 1, Load 2,LoadFrom 3,LoadFile 二,类型实例 1&a…...
代理模式概述
1.代理模式概述 学习内容 1)概述 为什么要有 “代理” ? 生活中就有很多例子,比如委托业务,黄牛(票贩子)等等代理就是被代理者没有能力或者不愿意去完成某件事情,需要找个人代替自己去完成这…...
最新AI系统ChatGPT网站程序源码+搭建教程/公众号/H5端/安装配置教程/完整知识库
1、前言 SparkAi系统是基于国外很火的ChatGPT进行开发的Ai智能问答系统。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。 那么如何搭建部署AI创作ChatGPT?小编这里写一个详细图文教程吧!…...
前端Flex布局
day06-Flex布局 目标:熟练使用 Flex 完成结构化布局 01-标准流 标准流也叫文档流,指的是标签在页面中默认的排布规则,例如:块元素独占一行,行内元素可以一行显示多个。 [外链图片转存失败,源站可能有防盗链机制,建议…...
文盘Rust -- Mutex解决并发写文件乱序问题 | 京东云技术团队
在实际开发过程中,我们可能会遇到并发写文件的场景,如果处理不当很可能出现文件内容乱序问题。下面我们通过一个示例程序描述这一过程并给出解决该问题的方法。 use std::{fs::{self, File, OpenOptions},io::{Write},sync::Arc,time::{SystemTime, UNI…...
数据结构算法--2 冒泡排序,选择排序,插入排序
基础排序算法 冒泡排序 思想就是将相邻元素两两比较,当一个元素大于右侧相邻元素时,交换他们的位置,小于右侧元素时,位置不变,最终序列中的最大元素,像气泡一样,到了最右侧。 这时冒泡排序第一…...
秋招面经——快手
Mysql mysql事务 共享锁与排他锁 共享锁:允许一个事务去读一行,阻止其他事务获得相同数据集的排他锁。(读都允许读,但我在读不允许你去改) 排他锁:允许一个事务去读一行,阻止其他事务获得相同…...
【STM32RT-Thread零基础入门】 2. 新建RT-Thread项目
硬件:STM32F103ZET6、ST-LINK、usb转串口工具 文章目录 前言一、新建RT-Thread项目二、项目结构三、构建项目四、下载程序(调试器下载)五、终端交互总结 前言 RT-Thread的全称是Real Time Thread,顾名思义,它是一个嵌…...
别人直播的时候怎么录屏?分享一些录屏方法
随着互联网的快速发展,直播已经成为人们日常生活中不可或缺的一部分。但是,有时候我们可能会错过某些重要的直播内容,这时候就需要录屏来保存和观看。那么,如何录屏别人的直播呢?本文将分享一些录屏方法和技巧&#…...
React Native 在高IOS版本下无法显示图片的问题处理
图片在低ios版本下可以看到图片,在高版本ios下显示不了图片 直接上解决方法 找文件 /node_modules/react-native/Libraries/Image/RCTUIImageViewAnimated.m 修改源码 原代码 if (_currentFrame) {layer.contentsScale self.animatedImageScale;layer.contents…...
SSH远程连接MacOS catalina并进行终端颜色配置
一、开关SSH服务 在虚拟机上安装了MacOS catalina,想要使用SSH远程进行连接,但是使用“系统偏好设置”/“共享”/“远程登录”开关进行打开,却一直是正在启动“远程登录”: 难道是catalina有BUG?不过还是有方法的&…...
用JSON.toJSONString转JSON时,属性的值为null时,输出的JSON里没有该属性
1、问题 用JSON.toJSONString转JSON时,当属性值为null的话,转出来的JSON里没有了值为null的属性,属性丢失了 2、原因 用fastjson将java对象转json字符串时会默认去除空字段 2、解决办法 在JSON.toJSONString方法加上SerializerFeature这一…...
Java版企业电子招标采购系统源码—企业战略布局下的采购寻源tbms
项目说明 随着公司的快速发展,企业人员和经营规模不断壮大,公司对内部招采管理的提升提出了更高的要求。在企业里建立一个公平、公开、公正的采购环境,最大限度控制采购成本至关重要。符合国家电子招投标法律法规及相关规范,以…...
轻拍牛头(约数)
题意:求ai在n个数中,ai可以整除的数有多少个,不包括ai自己。 分析:暴力写需要n^2的时间复杂度,此时想一下预处理每个数的倍数,约数和倍数是有关系的,把每个数的倍数都加上1. #include<bits…...
Vc - Qt - 绘制窗口背景色
要在Qt中绘制一个背景颜色,你可以使用Qt的绘图功能来完成。下面是一种简单的方法: 步骤1:在你想要绘制背景颜色的QWidget(例如QMainWindow或QDialog)的派生类中,重写 它的paintEvent函数。步骤2:…...
js和cocos creator学习笔记
1.Javascript有哪些数据类型?举例两个最常见的内置对象数据类型? 常用的数据类型:Number,String,Boolean,Null,Undefined,Object 常见内置对象:Array,Function2.下面代码输出内容是什么? let a []; a[10] 10; console.log(a.length); console.log(a[0]); a[200] undefi…...
Ceph分布式存储系统
Ceph 是一个开源的分布式存储系统,旨在提供高性能、高可靠性和可扩展性的存储解决方案。它被设计用于管理大规模的数据,可以轻松地扩展到数千台服务器和多个存储节点,适用于私有云、公有云、虚拟化环境等多种场景。 Ceph 的主要特点和组件包…...
高效Navicat密码找回工具:无需编程的数据库连接密码恢复方案
高效Navicat密码找回工具:无需编程的数据库连接密码恢复方案 【免费下载链接】navicat_password_decrypt 忘记navicat密码时,此工具可以帮您查看密码 项目地址: https://gitcode.com/gh_mirrors/na/navicat_password_decrypt 当数据库连接密码成为工作阻碍&a…...
【Scratch×AI 系列 05】工程化实战:先统一目录(init),再拆分流水线(plan / exec-plan / build)
摘要 Scratch 项目最容易“做着做着就乱”:素材散落、版本混杂、产物找不到,AI 更是无从下手xw-scratch-init 不是“创建文件夹”,而是把协作与自动化的前提一次性铺好把流程拆成 plan → exec-plan → build,是为了把 AI 从“胡写…...
灵毓秀-牧神-造相Z-Turbo创作实战:如何生成不同风格的灵毓秀图片
灵毓秀-牧神-造相Z-Turbo创作实战:如何生成不同风格的灵毓秀图片 1. 认识灵毓秀-牧神-造相Z-Turbo 灵毓秀-牧神-造相Z-Turbo是一款专注于生成《牧神记》中灵毓秀角色的AI图像生成模型。它基于Xinference框架部署,通过简单的Web界面即可快速生成各种风格…...
Mac小白必看:OpenClaw汉化版安装与Qwen3.5-9B快速接入
Mac小白必看:OpenClaw汉化版安装与Qwen3.5-9B快速接入 1. 为什么选择OpenClaw汉化版? 作为一个长期在Mac上折腾各种开发工具的老用户,我最近被OpenClaw这个"能像人类一样操作电脑"的AI智能体框架深深吸引。但官方英文文档和复杂的…...
保姆级教程:AI全身全息感知镜像部署,手把手教你实现543点动作捕捉
保姆级教程:AI全身全息感知镜像部署,手把手教你实现543点动作捕捉 1. 引言:全息感知技术的平民化革命 想象一下,只需一台普通电脑,就能实现电影级别的动作捕捉效果——这正是AI全身全息感知技术带来的变革。传统动作…...
QQ空间历史数据安全备份:GetQzonehistory高效解决方案
QQ空间历史数据安全备份:GetQzonehistory高效解决方案 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 在数字时代,个人社交数据的永久性面临严峻挑战。据中国互联…...
RadarSimPy:Python雷达仿真的完整指南与实战教程
RadarSimPy:Python雷达仿真的完整指南与实战教程 【免费下载链接】radarsimpy Radar Simulator built with Python and C 项目地址: https://gitcode.com/gh_mirrors/ra/radarsimpy RadarSimPy是一个基于Python和C构建的强大雷达仿真工具,为雷达系…...
ai赋能c语言开发:让快马平台自动生成文件io与链表管理代码
AI赋能C语言开发:让快马平台自动生成文件IO与链表管理代码 最近在做一个C语言的通讯录管理系统项目,需要实现联系人信息的增删改查功能,并且要求数据能够持久化保存。作为一个有经验的开发者,我决定尝试用InsCode(快马)平台的AI辅…...
城通网盘下载速度慢?试试ctfileGet,让你畅享本地高速解析体验
城通网盘下载速度慢?试试ctfileGet,让你畅享本地高速解析体验 【免费下载链接】ctfileGet 获取城通网盘一次性直连地址 项目地址: https://gitcode.com/gh_mirrors/ct/ctfileGet 在数字化办公与学习中,网盘已成为文件传输的重要工具。…...
抖音批量下载工具终极指南:免费无水印下载视频、图文、合集和直播
抖音批量下载工具终极指南:免费无水印下载视频、图文、合集和直播 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fal…...
