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


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 相关文章推荐
用AJAX返回HTML片段中的JavaScript脚本
Jan 04 Javascript
JQuery优缺点分析说明
Jun 09 Javascript
异步javascript的原理和实现技巧介绍
Nov 08 Javascript
Javascript获取表单名称(name)的方法
Apr 02 Javascript
JS实现可直接显示网页代码运行效果的HTML代码预览功能实例
Aug 06 Javascript
jQuery Mobile操作HTML5的常用函数总结
May 17 Javascript
详解使用nvm安装node.js
Jul 18 Javascript
Vue resource中的GET与POST请求的实例代码
Jul 21 Javascript
五步轻松实现JavaScript HTML时钟效果
Mar 25 Javascript
angular 服务随记小结
May 06 Javascript
微信小程序云开发之使用云函数
May 17 Javascript
JS 设计模式之:单例模式定义与实现方法浅析
May 06 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
星际争霸, 教主第一视角, ZvT经典龙蛇演义
2020/03/02 星际争霸
php中如何同时使用session和cookie来保存用户登录信息
2013/07/05 PHP
php json_encode()函数返回json数据实例代码
2014/10/10 PHP
常见PHP数据库解决方案分析介绍
2015/09/24 PHP
解决表单中第一个非隐藏的元素获得焦点的一个方案
2009/10/26 Javascript
jquery 打开窗口返回值实现代码
2010/03/04 Javascript
动态载入/删除/更新外部 JavaScript/Css 文件的代码
2010/07/03 Javascript
js 使FORM表单的所有元素不可编辑的示例代码
2013/10/17 Javascript
微信分享的标题、缩略图、连接及描述设置方法
2014/10/14 Javascript
jQuery中选择器的基础使用教程
2016/05/23 Javascript
jQuery中deferred对象使用方法详解
2016/07/14 Javascript
javascript深拷贝(deepClone)详解
2016/08/24 Javascript
js捕捉键盘事件和按键键值的方法
2016/10/10 Javascript
jQuery插件echarts实现的多柱子柱状图效果示例【附demo源码下载】
2017/03/04 Javascript
详解Vue 开发模式下跨域问题
2017/06/06 Javascript
微信小程序 上传头像的实例详解
2017/10/27 Javascript
解决angularJS中input标签的ng-change事件无效问题
2018/09/13 Javascript
Vue实现日历小插件
2019/06/26 Javascript
JS实现音乐钢琴特效
2020/01/06 Javascript
Python 深入理解yield
2008/09/06 Python
python实现基于两张图片生成圆角图标效果的方法
2015/03/26 Python
在Python中使用SQLite的简单教程
2015/04/29 Python
Java实现的执行python脚本工具类示例【使用jython.jar】
2018/03/29 Python
tensorflow 获取模型所有参数总和数量的方法
2018/06/14 Python
在Matplotlib图中插入LaTex公式实例
2020/04/17 Python
python中如何打包用户自定义模块
2020/09/23 Python
MVMT手表官方网站:时尚又实惠的高品质手表
2016/12/04 全球购物
Perfume’s Club美国官网:西班牙第一家在线美容店
2020/06/10 全球购物
心得体会范文
2014/01/04 职场文书
义和团口号
2014/06/17 职场文书
小学语文复习计划
2015/01/19 职场文书
保研推荐信范文
2015/03/25 职场文书
烛光里的微笑观后感
2015/06/17 职场文书
《女娲补天》教学反思
2016/02/20 职场文书
Redis如何一键部署脚本
2021/04/12 Redis
MongoDB 常用的crud操作语句
2021/06/20 MongoDB