仿手机相册的微信小程序组件,具备点击图片预览,长按图片出现多选框功能,读者可以根据自己的需求,依据现有数据进行删除等操作。话不多说,先看效果:

初始效果:

 长按效果:

选择效果:

注意:当前只是简单的逻辑,用户注意查看控制台的输出和代码中的注释!!!!!

上代码:

photo-album.wxml

<!-- 相册组件 -->
<view>
<scroll-view scroll-y="true" style="height: {{contentHeigh}}rpx;background-color: orange;">
<checkbox-group bindchange="onCheck">
<view class="scroll-acre">
<view class="pic" wx:for="{{imgList}}" wx:key="index">
<image catchtap="{{onView}}"
data-imglist="{{imgList}}"
data-currenturl="{{item}}"
catchlongpress="longPress"
mode="aspectFill"
src="{{item}}">
</image>
<checkbox hidden="{{!isShow}}" class="checkbox" value="{{index}}"></checkbox>
</view>
</view>
</checkbox-group>
</scroll-view>
</view>

photo-album.wxss

.scroll-acre {
display: grid;
grid-template-columns: repeat(auto-fill, 25%)
} .pic {
width: 200rpx;
height: 200rpx;
border-top: 1rpx solid #ffffff;
border-left: 1rpx solid #ffffff;
border-right: 1rpx solid #ffffff;
} image {
width: 200rpx;
height: 200rpx;
}
.checkbox{
float: left;
margin-top: -206rpx;
margin-left: 140rpx;
opacity: 0.7;
}

photo-album.js

// component/photo-album/photo-album.js
Component({
/**
* 组件的属性列表
*/
properties: {
// 可滚动区域高度
contentHeigh: {
type: Number || String,
value: 800
},
//图片列表
imgList: {
type: Array,
value: [
'http://placekitten.com/500/500',
'http://placekitten.com/200/300',
'http://placekitten.com/200/500',
'http://placekitten.com/600/200',
'http://placekitten.com/600/400',
'http://placekitten.com/600/300',
'http://placekitten.com/500/200',
'http://placekitten.com/400/200',
'http://placekitten.com/700/260',
'http://placekitten.com/400/230',
'http://placekitten.com/100/400',
'http://placekitten.com/300/200',
'http://placekitten.com/400/200',
'http://placekitten.com/700/260',
'http://placekitten.com/400/230',
'http://placekitten.com/100/400',
'http://placekitten.com/300/200',
'http://placekitten.com/400/200',
'http://placekitten.com/700/260',
'http://placekitten.com/400/230',
'http://placekitten.com/100/400',
'http://placekitten.com/300/200',
'http://placekitten.com/400/230',
'http://placekitten.com/100/400',
'http://placekitten.com/300/200',
'http://placekitten.com/400/200',
]
}
}, /**
* 组件的初始数据
*/
data: {
     isShow: false, //是否显示多选框 false:不显示
onView:'onView', //点击预览图片事件,在长按事件触发后,该值为空,用于暂停该事件触发
}, /**
* 组件的方法列表
*/
methods: {
// 图片点击预览事件
onView(options) {
console.log("点击了图片:",options);
let imgUrls = options.currentTarget.dataset.imglist; //全部图片地址列表
let currentUrl = options.currentTarget.dataset.currenturl; //当前点击的图片地址
wx.previewImage({
urls: imgUrls,
current:currentUrl,
showmenu:true
})
},
//图片长按事件,触发显示多选框和删除按钮
longPress() {
console.log("长按了图片");
this.setData({
isShow: true,
onView:''
})
},
    //选择框选择事件
onCheck(e) {
let checkList = e.detail.value
console.log("选择的图片序列:", checkList);
} }, })

photo-album.json

{
"component": true,
"usingComponents": {}
}

以上便是全部代码,接下来给读者看一下文件结构:

最后,记得这是个组件哦,要在页面引入才可以看到效果哈

小程序自定义组件参考文档:自定义组件 | 微信开放文档 (qq.com)

自定义组件 | 微信开放文档:  https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component/

微信小程序仿手机相册组件——简单版的更多相关文章

  1. [小程序开发] 微信小程序audio音频播放组件+api_wx.createAudioContext

    引言: audio是微信小程序中的音频组件,可以轻松实现小程序中播放/停止音频等自定义动作. 附上微信小程序audio组件的相关属性说明:https://mp.weixin.qq.com/debug/ ...

  2. 微信小程序--仿微信小程序朋友圈Pro(内容发布、点赞、评论、回复评论)

    微信小程序--仿微信小程序朋友圈Pro(内容发布.点赞.评论.回复评论) 项目开源地址M朋友圈Pro 求个Star 项目背景 ​ 基于原来的开源项目 微信小程序仿朋友圈功能开发(发布.点赞.评论等功能 ...

  3. 微信小程序与手机APP区别

    微信小程序与手机APP区别 ------------------<><><><>------------------ 微信小程序自去年年初,张小龙放话要 ...

  4. 解决微信小程序安卓手机访问不到图片,无法显示图片

    关于微信小程序不显示图片 通病可能有以下几个可能性: 非本地图片:确定图片资源存在,copy 图片url再浏览器打开,确定图片资源存在且能正常访问 本地图片:确定相对路径或者绝对路径正确 微信小程序图 ...

  5. 微信小程序页面调用自定义组件内的事件

    微信小程序页面调用自定义组件内的事件 page page.json { "usingComponents": { "my-component": ". ...

  6. 微信小程序仿朋友圈功能开发(发布、点赞、评论等功能)

    微信小程序仿朋友圈功能开发(发布.点赞.评论等功能) 1.项目分析 项目整体分为三个部分 发布 展示 详情页 graph LR 朋友圈发布 --内容发布--> 内容展示 内容展示 --点击展示卡 ...

  7. 微信小程序(二十)-UI组件(Vant Weapp)-01按装配置

    1.官网 https://vant-contrib.gitee.io/vant-weapp/#/intro https://gitee.com/vant-contrib/vant-weapp 2.按装 ...

  8. 1个多商户、多平台版 微信小程序(多商户、多平台版),影城行业、影业连锁 多商户、多平台版微信小程序。(基于多平台版,支持在业务上 可给 每个单独影城 分发定制单独的小程序版本)

    1个 影城行业 微信小程序(多商户.多平台版), 影业连锁 多商户.多平台版微信小程序.(基于多平台版,支持在业务上 可给 每个单独影城 分发定制单独的小程序版本) 资讯QQ: 876635409  ...

  9. 微信小程序开发—快速掌握组件及API的方法

    微信小程序框架为开发者提供了一系列的组件和API接口. 组件主要完成小程序的视图部分,例如文字.图片显示.API主要完成逻辑功能,例如网络请求.数据存储.音视频播放控制,以及微信开放的微信登录.微信支 ...

随机推荐

  1. Apache DolphinScheduler 使用文档(2-3/8):集群规划及环境准备

    本文章经授权转载,原文链接: https://blog.csdn.net/MiaoSO/article/details/104770720 目录 2. 集群规划 2.1 集群配置 2.2 软件版本 2 ...

  2. Ubuntu添加非root用户到Docker用户组

    前言 首先平常公司的Linux生产环境为了防止误操作导致灾难性问题,一般都不会给我们开发开放root管理员的账号权限.所以平常在Ubuntu的普通用户登录的时候,要操作Dcoker一般都需要带上sud ...

  3. Java学习第七周

    这周学习了集合,stream流等知识 List集合 – List系列集合:添加的元素是有序,可重复,有索引 1.ArrayList: 添加的元素是有序,可重复,有索引 2.LinkedList: 添加 ...

  4. Luogu1655 小朋友的球 (组合数学,第二类斯特林数,高精)

    我bingoyes再高精用STL就饿死,死外边! string真的爽... 斯特林数模板题:\(S(n,m) = S(n-1,m-1)+S(n-1,m)*n\) #include <iostre ...

  5. iommu分析之---intel iommu初始化

    intel 的iommu 是iommu框架的一个实现案例. 由于intel 的iommu 实现得比arm smmv3复杂得多,里面概念也多,所以针对intel 实现的iommu 案例的初始化部分进行一 ...

  6. openjdk的bug

    容器内就获取个cpu利用率,怎么就占用单核100%了呢 背景:这个是在centos7 + lxcfs 和jdk11 的环境上复现的 下面列一下我们是怎么排查并解这个问题的. 一.故障现象 oppo内核 ...

  7. redis-string类型命令

    一.APPEND key value 如果 key 已经存在,并且值为字符串,那么这个命令会把 value 追加到原来值(value)的结尾. 如果 key 不存在,那么它将首先创建一个空字符串的ke ...

  8. 如何用 refcursor 返回结果集

    可以通过返回 Refcursor 类型的函数,或者out 类型的函数或 procedure 返回结果集. 一.返回refcursor 类型的函数 create or replace function ...

  9. ORM增删改查并发性能测试

    这两天在对一些ORM进行性能测试(涉及SqlSugar.FreeSql.Fast.Framework.Dapper.LiteSql),测试用的是Winform程序,别人第一眼看到我的程序,说,你这测试 ...

  10. 解决nuxt/koa架构初始项目运行报错问题

    今天在学习运用vue的nuxt/koa框架,初始化项目之后,在执行 $> npm run dev 时报错,错误详细信息如下: 点击查看报错的详细内容 > npm run dev Debug ...