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


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 相关文章推荐
自定义jQuery选项卡插件实例
Mar 27 Javascript
邮箱下拉自动填充选择示例代码附图
Apr 03 Javascript
jquery使用remove()方法删除指定class子元素
Mar 26 Javascript
Jquery遍历Json数据的方法
Apr 20 Javascript
JavaScript中使用Math.PI圆周率属性的方法
Jun 14 Javascript
JS+CSS实现TreeMenu二级树形菜单完整实例
Sep 18 Javascript
javascript 判断是否是微信浏览器的方法
Oct 09 Javascript
深入浅析Node.js单线程模型
Jul 10 Javascript
Angular4学习之Angular CLI的安装与使用教程
Jan 04 Javascript
Angular数据绑定机制原理
Apr 17 Javascript
angular6.0开发教程之如何安装angular6.0框架
Jun 29 Javascript
JavaScript中的事件与异常捕获详析
Feb 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
PHP入门之常量简介和系统常量
2014/05/12 PHP
ThinkPHP空模块和空操作详解
2014/06/30 PHP
PHP网站建设的流程与步骤分享
2015/09/25 PHP
PHP 类与构造函数解析
2017/02/06 PHP
Thinkphp框架使用list_to_tree 实现无限级分类列出所有节点示例
2020/04/04 PHP
js 判断 enter 事件
2009/02/12 Javascript
Extjs学习笔记之三 extjs form更多的表单项
2010/01/07 Javascript
jQuery Clone Bug解决代码
2010/12/22 Javascript
jquery数据验证插件(自制,简单,练手)实例代码
2013/10/24 Javascript
javascript计时器事件使用详解
2014/01/07 Javascript
javascript日期格式化示例分享
2014/03/05 Javascript
jquery实现的网页自动播放声音
2014/04/30 Javascript
js时钟翻牌效果实现代码分享
2020/07/31 Javascript
jQuery插件EasyUI获取当前Tab中iframe窗体对象的方法
2016/08/05 Javascript
jquery二级目录选中当前页的css样式
2016/12/08 Javascript
三种方式实现瀑布流布局
2017/02/10 Javascript
vue3.0 CLI - 2.3 - 组件 home.vue 中学习指令和绑定
2018/09/14 Javascript
把MySQL表结构映射为Python中的对象的教程
2015/04/07 Python
python使用super()出现错误解决办法
2017/08/14 Python
Python如何生成树形图案
2018/01/03 Python
Python3随机漫步生成数据并绘制
2018/08/27 Python
浅谈Scrapy网络爬虫框架的工作原理和数据采集
2019/02/07 Python
Django如何实现密码错误报错提醒
2020/09/04 Python
CSS3 伪类选择器 nth-child()说明
2010/07/10 HTML / CSS
意大利奢侈品购物网站:Deliberti
2019/10/08 全球购物
彪马香港官方网上商店:PUMA香港
2020/12/06 全球购物
安全员岗位职责
2013/11/11 职场文书
少先队入队活动方案
2014/02/08 职场文书
教师节标语大全
2014/10/07 职场文书
同学聚会邀请函
2015/01/30 职场文书
终止解除劳动合同证明书
2015/06/17 职场文书
公务员处分决定书
2015/06/25 职场文书
如何写通讯稿
2015/07/22 职场文书
Laravel中获取IP的真实地理位置
2021/04/01 PHP
MySQL数据库索引的最左匹配原则
2021/11/20 MySQL
Python数组变形的几种实现方法
2022/05/30 Python