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

长按效果:

选择效果:

注意:当前只是简单的逻辑,用户注意查看控制台的输出和代码中的注释!!!!!
上代码:
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主要完成逻辑功能,例如网络请求.数据存储.音视频播放控制,以及微信开放的微信登录.微信支 ...
随机推荐
- HMS Core Discovery第17期直播预告|音随我动,秒变音色造型师
[导读] 随着音视频内容品类的不断丰富及音乐创作门槛不断降低,大量用户正热切的参与到全民创作的大潮中.我们应该怎么去拥抱移动端影音潜力市场?音频编辑又可以有什么新玩法? 本期直播<音随我动,秒变 ...
- 网安等保-Linux服务器之最新Ubuntu-22.04-LTS系统内核优化与安全加固配置脚本使用分享
关注「WeiyiGeek」公众号 设为「特别关注」每天带你玩转网络安全运维.应用开发.物联网IOT学习! 希望各位看友[关注.点赞.评论.收藏.投币],助力每一个梦想. 本章目录 目录 0x00 前言 ...
- JZM 的套题(暴力,DP)
J Z M \rm JZM JZM 即将奔赴 N O I \rm NOI NOI 考场,为了让同学们赶上自己的千分之一水平,刻意出了两道水题给同学们练练. 1.曾经的代码 J Z M \rm JZM ...
- MixCSE:困难样本在句子表示中的使用
Unsupervised Sentence Representation via Contrastive Learning with Mixing Negatives 论文地址:https://www ...
- OpenJudge 1.5.24 正常血压
24:正常血压 总时间限制: 1000ms 内存限制: 65536kB 描述 监护室每小时测量一次病人的血压,若收缩压在90 - 140之间并且舒张压在60 - 90之间(包含端点值)则称之为正常,现 ...
- B2. Wonderful Coloring - 2
链接:Problem - 1551B2 - Codeforces 题意:有m个颜色,要求每种颜色内的数字各不相同,问,颜色的最大长度多少. 题解: 判断每个数字的个数,如果大于m,那么最大长度就加一 ...
- 可别小看了XSS漏洞
可别小看了XSS漏洞 对于初了解xss漏洞的人来说,XSS漏洞的危害就是获取受害者的cookie,来进行 'cookie劫持'. 今天就总结一下XSS漏洞的危害性,望安全人员不要轻视,开发人员 ...
- 微信小程序-云函数、云存储
云函数是运行在服务器端的 创建一个目录cloud project.config.json配置云函数目录 cloud目录有个云朵.代表云函数 初始化成功了 新建一个云函数 cloud目录右击 新建一个N ...
- Django 使用Pycharm 创建工程
一.Pycharm 创建Django 工程 事实上,我们一般不使用命令行,而是直接在Pycharm 中创建Django 项目. Pycharm 是进行Django 开发的最佳 IDE,请大家自行安装, ...
- Elasticsearch:跨集群搜索 Cross-cluster search (CCS)
转载自:https://blog.csdn.net/UbuntuTouch/article/details/104588232 跨集群搜索(cross-cluster search)使您可以针对一个或 ...