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

长按效果:

选择效果:

注意:当前只是简单的逻辑,用户注意查看控制台的输出和代码中的注释!!!!!
上代码:
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/
微信小程序仿手机相册组件——简单版的更多相关文章
- [小程序开发] 微信小程序audio音频播放组件+api_wx.createAudioContext
引言: audio是微信小程序中的音频组件,可以轻松实现小程序中播放/停止音频等自定义动作. 附上微信小程序audio组件的相关属性说明:https://mp.weixin.qq.com/debug/ ...
- 微信小程序--仿微信小程序朋友圈Pro(内容发布、点赞、评论、回复评论)
微信小程序--仿微信小程序朋友圈Pro(内容发布.点赞.评论.回复评论) 项目开源地址M朋友圈Pro 求个Star 项目背景 基于原来的开源项目 微信小程序仿朋友圈功能开发(发布.点赞.评论等功能 ...
- 微信小程序与手机APP区别
微信小程序与手机APP区别 ------------------<><><><>------------------ 微信小程序自去年年初,张小龙放话要 ...
- 解决微信小程序安卓手机访问不到图片,无法显示图片
关于微信小程序不显示图片 通病可能有以下几个可能性: 非本地图片:确定图片资源存在,copy 图片url再浏览器打开,确定图片资源存在且能正常访问 本地图片:确定相对路径或者绝对路径正确 微信小程序图 ...
- 微信小程序页面调用自定义组件内的事件
微信小程序页面调用自定义组件内的事件 page page.json { "usingComponents": { "my-component": ". ...
- 微信小程序仿朋友圈功能开发(发布、点赞、评论等功能)
微信小程序仿朋友圈功能开发(发布.点赞.评论等功能) 1.项目分析 项目整体分为三个部分 发布 展示 详情页 graph LR 朋友圈发布 --内容发布--> 内容展示 内容展示 --点击展示卡 ...
- 微信小程序(二十)-UI组件(Vant Weapp)-01按装配置
1.官网 https://vant-contrib.gitee.io/vant-weapp/#/intro https://gitee.com/vant-contrib/vant-weapp 2.按装 ...
- 1个多商户、多平台版 微信小程序(多商户、多平台版),影城行业、影业连锁 多商户、多平台版微信小程序。(基于多平台版,支持在业务上 可给 每个单独影城 分发定制单独的小程序版本)
1个 影城行业 微信小程序(多商户.多平台版), 影业连锁 多商户.多平台版微信小程序.(基于多平台版,支持在业务上 可给 每个单独影城 分发定制单独的小程序版本) 资讯QQ: 876635409 ...
- 微信小程序开发—快速掌握组件及API的方法
微信小程序框架为开发者提供了一系列的组件和API接口. 组件主要完成小程序的视图部分,例如文字.图片显示.API主要完成逻辑功能,例如网络请求.数据存储.音视频播放控制,以及微信开放的微信登录.微信支 ...
随机推荐
- 3052 [USACO12MAR]摩天大楼里的奶牛Cows in a Skyscraper (状压DP,IDA*)
状压DP: #include <iostream> #include <cstdio> #include <cstring> #include <algori ...
- Nodemon 如何实时监听 TypeScript 项目下的文件并热部署?
首先你的项目要安装ts-node和nodemon: npm i -D ts-node nodemon 在package.json文件中配置运行脚本: "dev": "no ...
- 乘风破浪,遇见最佳跨平台跨终端框架.Net Core/.Net生态 - 官方扩展集锦(Microsoft.Extensions on Nuget)
什么是Microsoft.Extensions .NET Platform Extensions是一套.Net官方的API集合,提供了一些常用的编程模式和实用工具,例如依赖项注入.日志记录.缓存.Ho ...
- 使用MindSpore计算旋转矩阵
技术背景 坐标变换.旋转矩阵,是在线性空间常用的操作,在分子动力学模拟领域有非常广泛的应用.比如在一个体系中切换坐标,或者对整体分子进行旋转平移等.如果直接使用Numpy,是很容易可以实现的,只要把相 ...
- 国家都给NISP证书的补贴了!关于NISP考试的政策有哪些?
NISP证书由中国信息安全测评中心依据中编办赋予"信息安全服务和信息安全专业人员的能力评估与资质审核"的职能而推出的证书,是中国信息安全测评中心代表国家实施的信息安全人员能力评定证 ...
- Matery主题添加Pjax
如何给matery主题添加Pjax? Pjax优点 1.减轻服务端压力 2.按需请求,每次只需加载页面的部分内容,而不用重复加载一些公共的资源文件和不变的页面结构,大大减小了数据请求量,以减轻对服务器 ...
- 【java】学习路线5-public和private、构造方法、this关键字、封装对象、static关键字、main方法结构解析
//一个教务管理系统//知识点清单/*public & private 的区别一个是公开的,一个是私有的,作用域不一样,访问的权限不一样咯如果是用private修饰,则调用者只可以是在当前的作 ...
- 并发编程Bug起源:可见性、有序性和原子性问题
以前古老的DOS操作系统,是单进行的系统.系统每次只能做一件事情,完成了一个任务才能继续下一个任务.每次只能做一件事情,比如在听歌的时候不能打开网页.所有的任务操作都按照串行的方式依次执行. 这类服务 ...
- C++ | unordered_map 自定义键类型
C++ unordered_map 使用自定义类作为键类型 C++ unordered_map using a custom class type as the key
- 俄罗斯的 HTTPS 证书问题
文章转载自:https://mp.weixin.qq.com/s/8EikwCvZgKt2TFsld-nKSA