微信小程序轮播图放大全屏预览(爆料)


前言

最近小编又惹火上身了,作为一个后端开发的小白,公司居然让我去试水小程序,说实话,如果你学过vue的话,小程序还是很容易上手的,对于小编这种360度都会骚操作的人,简单上岸还是可以的,图片全屏预览,玩过快手,短视频都会时常刷到这么个效果,以及微信朋友圈的朋友们的狗粮图,我们总是猝不及防的放大,废话不多说,操作起来。

一、wx.previewImage接口API

官方介绍:

wx.previewImage(Object object, boolean showmenu),在新页面中全屏预览图片。预览的过程中用户可以进行保存图片、发送给朋友等操作。

在这里插入图片描述

代码示例:

wx.previewImage({
  current: '', // 当前显示图片的http链接
  urls: []    // 需要预览的图片http链接列表
})

current:当前图片的地址(注意:线上地址),urls:图片数组(注意:必须写)

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

二、图片全屏预览

1.效果展示

在这里插入图片描述
全屏预览:
在这里插入图片描述

2.编码

img.wxml

<view>
  <image src="{{imgList[0]}}" bindtap="prclick" data-src="{{imgList[0]}}"></image>
  <image src="{{imgList[1]}}" bindtap="prclick" data-src="{{imgList[1]}}"></image>
  <image src="{{imgList[2]}}" bindtap="prclick" data-src="{{imgList[2]}}"></image>
</view>

img.js

/**
   * 页面的初始数据
   */
  data: {
    imgList: [
      "http://ydfblog.cn/dfs/group1/M00/00/16/rBghtmASfZCACqBwACKYFW6g2Ws043.jpg",
      "http://ydfblog.cn/dfs/group1/M00/00/16/rBghtmASfZ-AdRHEACpLMa4xENk303.jpg",
      "http://ydfblog.cn/dfs/group1/M00/00/15/rBghtmASfXyAN-QlABGmOyJVT68055.jpg"
    ]
  },

  //预览图片,放大预览
  prclick(e) {
    console.log(e.currentTarget.dataset.src)
    let currentUrl = e.currentTarget.dataset.src
    wx.previewImage({
      current: currentUrl,    // 当前显示图片的http链接
      urls: this.data.imgList // 需要预览的图片http链接列表
    })
  },

img.wxss

image{
  width: 100% !important;
}

三、轮播图全屏预览

1、效果展示

在这里插入图片描述
全屏预览:
在这里插入图片描述

2、编码

img.wxml

在这里插入图片描述
重点部分:

<image bindtap="swipclick" data-list="{{article.medias}}" data-src="{{resUrl+item.url1}}" src='{{resUrl+item.url1}}' mode='aspectFill'></image>

自定义属性传递参数:data-list 图片数组,data-src 当前图片地址,bindtap绑定单击事件。

img.js

//预览图片,放大预览
swipclick(e) {
   var currentSrc = e.currentTarget.dataset.src;  //获取当前图片地址
   var imgList = e.currentTarget.dataset.list;    //获取图片的数组
   var arrUrls = new Array();
   for (var i = 0; i < imgList.length; i++) {
     arrUrls[i] = this.data.resUrl + imgList[i].url1; 
   }
   console.log(arrUrls)
   wx.previewImage({
     current: currentSrc,
     urls: arrUrls
   })
},
arrUrls[i] = this.data.resUrl + imgList[i].url1;  服务器IP地址 + 数据库存储的图片地址

会遇到的问题:

由于是轮播图,可能image 的 bindtap绑定事件失效,触发无效,不要给image标签添加该属性:

pointer-events: none; //元素永远不会触发点击事件,会冒泡的下去

这里我们可以手动测试一下:
在这里插入图片描述

总结

以上就是今天要分享的内容,pointer-events: none; 元素的坑,我花了一个多小时才找到,在微信小程序中需要注意的是不能放置再组件中使用 pointer-events: none,但是我们可以在组件中设置 pointer-event: auto; 这是不影响bindtap绑定的。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DT辰白

你的鼓励是我创作的源泉

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值