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


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 相关文章推荐
获取内联和链接中的样式(js代码)
Apr 11 Javascript
jsonp原理及使用
Oct 28 Javascript
常用的jQuery前端技巧收集
Dec 24 Javascript
JS动态日期时间的获取方法
Sep 28 Javascript
JavaScript ES6的新特性使用新方法定义Class
Jun 28 Javascript
jQuery实现淡入淡出的模态框
Feb 09 Javascript
JS实现中国公民身份证号码有效性验证
Feb 20 Javascript
jQuery实现简单的抽奖游戏
May 05 jQuery
纯JavaScript实现实时反馈系统时间
Oct 26 Javascript
JS如何使用剪贴板操作Clipboard API
May 17 Javascript
vue中利用mqtt服务端实现即时通讯的步骤记录
Jul 01 Vue.js
【js设计模式】SOLID五大设计原则
Mar 24 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
《神奇女侠:血脉》神力女超人大战犯罪公司
2020/04/09 欧美动漫
基于PHP与XML的PDF文档生成技术
2006/10/09 PHP
PHP 函数学习简单小结
2010/07/08 PHP
匹配csdn用户数据库与官方用户的重合度并将重叠部分的用户筛选出来
2011/12/25 PHP
记录PHP错误日志 display_errors与log_errors的区别
2012/10/09 PHP
PHP中使用CURL模拟登录并获取数据实例
2014/07/01 PHP
php获取从html表单传递数组的方法
2015/03/20 PHP
PHP进行批量任务处理不超时的解决方法
2016/07/11 PHP
php禁用函数设置及查看方法详解
2016/07/25 PHP
ThinkPHP的SAE开发相关注意事项详解
2016/10/09 PHP
PHP载入图像imagecreatefrom_gif_jpeg_png系列函数用法分析
2016/11/14 PHP
php+resumablejs实现的分块上传 断点续传功能示例
2017/04/18 PHP
模拟用户点击弹出新页面不会被浏览器拦截
2014/04/08 Javascript
JavaScript提高网站性能优化的建议(二)
2016/07/24 Javascript
如何利用JQuery实现从底部回到顶部的功能
2016/12/27 Javascript
Vue插值、表达式、分隔符、指令知识小结
2018/10/12 Javascript
vue路由--网站导航功能详解
2019/03/29 Javascript
浅谈vue异步数据影响页面渲染
2019/10/29 Javascript
JavaScript设计模型Iterator实例解析
2020/01/22 Javascript
jQuery实现简易QQ聊天框
2020/02/10 jQuery
Vue项目打包压缩的实现(让页面更快响应)
2020/03/10 Javascript
vue实现信息管理系统
2020/05/30 Javascript
Python3.6实现带有简单界面的有道翻译小程序
2019/04/16 Python
Python 实现数组相减示例
2019/12/27 Python
jupyter notebook tensorflow打印device信息实例
2020/04/20 Python
Python Django form 组件动态从数据库取choices数据实例
2020/05/19 Python
Python爬虫之Selenium下拉框处理的实现
2020/12/04 Python
日本最大的药妆连锁店:Matsukiyo松本清药妆店
2017/11/23 全球购物
乌克兰移动电子产品和相关配件的在线商店:iTMag
2020/03/16 全球购物
北大自主招生自荐信
2013/10/19 职场文书
大二学生学习个人自我评价
2014/01/19 职场文书
残疾人创业典型事迹
2014/02/01 职场文书
2014年医学生毕业自我鉴定
2014/03/26 职场文书
教师节宣传方案
2014/05/23 职场文书
机电专业毕业生自我鉴定2014
2014/10/04 职场文书
一文搞懂redux在react中的初步用法
2021/06/09 Javascript