微信小程序选择图片和放大预览图片功能


Posted in Javascript onNovember 02, 2017

视频中,老师也是看着官方文档,为学生们讲解,微信提供了系统的方法来选择图片.

wx.chooseImage({})

此方法是用来选择图片的方法,具体使用如下:

data: {
  avatarUrl:null
 },

首先在数据中定义接收数据的变量,然后调用方法选择图片,将图片显示出来。

bindViewTap:function(){
  var that = this;
  wx.chooseImage({
  // 设置最多可以选择的图片张数,默认9,如果我们设置了多张,那么接收时//就不在是单个变量了,
   count: 1, 
   sizeType: ['original', 'compressed'], // original 原图,compressed 压缩图,默认二者都有
   sourceType: ['album', 'camera'], // album 从相册选图,camera 使用相机,默认二者都有
   success: function(res){
    // 获取成功,将获取到的地址赋值给临时变量
    var tempFilePaths = res.tempFilePaths;
    that.setData({
    //将临时变量赋值给已经在data中定义好的变量
     avatarUrl:tempFilePaths
    })
   },
   fail: function(res) {
    // fail
   },
   complete: function(res) {
    // complete
   }
  })
 }

此时我们定义的全局变量,也就是data中的url,已经有值了,现在只需要在页面中显示即可。

//点击此按钮调用选择图片的方法,成功后将图片显示在image标签上
 <button bindtap="bindViewTap" type="submit">绑定事件</button>
<image src="{{avatarUrl}}"></image>

如果是多选的话,在显示的时候,就不应该直接显示数据源了,这样会报错的,因为返回的是数组:

<image wx:for="{{avatarUrl}}" wx:key="unique" src="{{item}}"></image>

图片预览:

下面说一下图片预览:

首先在data中定义好数据源:

data:{
  avatarUrl:null,
  pictures: [ 'https://p0.meituan.net/movie/ea4ac75173a8273f3956e514a4c78018253143.jpeg',
   'https://p0.meituan.net/movie/5d4fa35c6d1215b5689257307c461dd2541448.jpeg',
   'https://p0.meituan.net/movie/0c49f98a93881b65b58c349eed219dba290900.jpg',
   'https://p1.meituan.net/movie/45f98822bd15082ae3932b6108b17a01265779.jpg',
   'https://p1.meituan.net/movie/722de9a7b0c1f9c262162d87eccaec7c451290.jpg',
   'https://p0.meituan.net/movie/cb9be5bbedb78ce2ef8e83c93f83caca474393.jpg',
   'https://p1.meituan.net/movie/a852b992cdec15319c717ba9fa9b7a35406466.jpg',
   'https://p1.meituan.net/movie/dc1f94811793e9c653170cba7b05bf3e484939.jpg'
  ]
 },

然后创建方法previewImage,实现图片预览:

previewImage: function(e){
  var that = this,
  //获取当前图片的下表
    index = e.currentTarget.dataset.index,
    //数据源
    pictures = this.data.pictures;
  wx.previewImage({
  //当前显示下表
   current: pictures[index],
   //数据源
   urls: pictures
  })
 }

然后再页面中边遍历数据,显示:

<view>
 <image wx:for="{{pictures}}" wx:key="unique"src="{{item}}" data-index="{{index}}" bindtap="previewImage"></image>
</view>

先列表显示全部图片,绑定预览方法,点击图片进行左右预览,

下面在给大家补充下微信小程序图片放大预览功能,具体内容介绍如下所示:

需求:当点击图片时,当前图片放大预览,且可以左右滑动

微信小程序选择图片和放大预览图片功能

实现方式:使用微信小程序图片预览接口

微信小程序选择图片和放大预览图片功能

我们可以看到api需要两个参数,分别通过下面的data-list和data-src来传到js中

wxml代码:

<!--图片描述-->
 <view wx:if="{{item.pictures}}" class="list-dImg">
 <image bindtap="imgYu" data-list="{{item.pictures}}" data-src="{{dImg}}" wx:for="{{item.pictures}}" wx:for-item="dImg" src="{{dImg}}"></image>
 </view>

js代码:

//图片点击事件
 imgYu:function(event){
 var src = event.currentTarget.dataset.src;//获取data-src
 var imgList = event.currentTarget.dataset.list;//获取data-list
 //图片预览
 wx.previewImage({
 current: src, // 当前显示图片的http链接
 urls: imgList // 需要预览的图片http链接列表
 })
 }

1.给图片添加一个点击事件(imgYu)

2.使用event.currentTarget.dataset.自定义属性名称   来获取data-的值 如event.currentTarget.dataset.src  (获取data-src的值)

3.之后将获取的两个值 放到wx.previewImage接口 里面即可

效果图片如下:可以左右滑动上一张下一张

微信小程序选择图片和放大预览图片功能

总结

以上所述是小编给大家介绍的微信小程序选择图片和放大预览图片功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JavaScript AJAX之惰性载入函数
Aug 27 Javascript
Javascript 读取操作Sql中的Xml字段
Oct 09 Javascript
JS如何实现文本框随文本的长度而增长
Jul 30 Javascript
学习JavaScript设计模式(策略模式)
Nov 26 Javascript
详解Document.Cookie
Dec 25 Javascript
jQuery插件dataTables添加序号列的方法
Jul 06 Javascript
vue2.x 父组件监听子组件事件并传回信息的方法
Jul 17 Javascript
Node.js pipe实现源码解析
Aug 12 Javascript
动态统计当前输入内容的字节、字符数的实例详解
Oct 27 Javascript
JavaScript复制内容到剪贴板的两种常用方法
Feb 27 Javascript
JavaScript实现无限级递归树的示例代码
Mar 29 Javascript
JS数组转字符串实现方法解析
Sep 04 Javascript
微信小程序实现图片放大预览功能
Oct 22 #Javascript
极简主义法编写JavaScript类
Nov 02 #Javascript
利用nvm管理多个版本的node.js与npm详解
Nov 02 #Javascript
JavaScript屏蔽Backspace键的实现代码
Nov 02 #Javascript
Vue源码学习之初始化模块init.js解析
Nov 02 #Javascript
为输入框加入数字js校验代码分享
Nov 02 #Javascript
详谈js中标准for循环与foreach(for in)的区别
Nov 02 #Javascript
You might like
php基础知识:类与对象(1)
2006/12/13 PHP
使用PHP备份MySQL和网站发送到邮箱实例代码
2013/11/28 PHP
PHP封装CURL扩展类实例
2015/07/28 PHP
yii2控制器Controller Ajax操作示例
2016/07/23 PHP
对JavaScript的eval()中使用函数的进一步讨论
2008/07/26 Javascript
如何确保JavaScript的执行顺序 之jQuery.html并非万能钥匙
2011/03/03 Javascript
node.js入门教程迷你书、node.js入门web应用开发完全示例
2014/04/06 Javascript
jQuery实现响应浏览器缩放大小并改变背景颜色
2014/10/31 Javascript
如何编写jquery插件
2017/03/29 jQuery
ES6中新增的Object.assign()方法详解
2017/09/22 Javascript
微信小程序项目总结之点赞 删除列表 分享功能
2018/06/25 Javascript
搭建一个Koa后端项目脚手架的方法步骤
2019/05/30 Javascript
用Node写一条配置环境的指令
2019/11/14 Javascript
微信小程序实用代码段(收藏版)
2019/12/17 Javascript
微信小程序仿抖音视频之整屏上下切换功能的实现代码
2020/05/24 Javascript
利用Python画ROC曲线和AUC值计算
2016/09/19 Python
python itchat实现微信好友头像拼接图的示例代码
2017/08/14 Python
彻底搞懂Python字符编码
2018/01/23 Python
Python使用Pickle库实现读写序列操作示例
2018/06/15 Python
python 将有序数组转换为二叉树的方法
2019/03/26 Python
浅谈python3中input输入的使用
2019/08/02 Python
Python pandas用法最全整理
2019/08/04 Python
解决Python命令行下退格,删除,方向键乱码(亲测有效)
2020/01/16 Python
Python HTMLTestRunner测试报告view按钮失效解决方案
2020/05/25 Python
学python需要去培训机构吗
2020/07/01 Python
python eventlet绿化和patch原理
2020/11/21 Python
Java里面如何把一个Array数组转换成Collection, List
2013/07/26 面试题
美德好少年主要事迹
2014/01/29 职场文书
保险公司年会主持词
2014/03/22 职场文书
我的祖国演讲稿
2014/05/04 职场文书
社区维稳工作方案
2014/06/06 职场文书
2014个人年度工作总结
2014/12/15 职场文书
初中生思想道德自我评价
2015/03/09 职场文书
学习与创新自我评价
2015/03/09 职场文书
我的中国梦主题班会
2015/08/14 职场文书
优质服务心得体会(共4篇)
2016/01/22 职场文书