微信小程序图片放大预览效果的实现,轮播图点击放大预览

近期很多刚学习小程序的同学,想做哪种图片点击放大,然后可以左右滑动预览的效果。我也特意去研究下,发现直接用微信程序自己的api就可以很方便的实现。今天就来教大家如何实现小程序图片点击放大的效果。

老规矩,先看效果图


效果图有点快,但是可以大致看出来效果了。我再给大家描述下吧
一个页面有3张图片,点击其中任意一张都可以放大预览。然后在预览的时候,左右滑动,还可以看另外两张图片。

话不多说,直接上代码

一,实现多张图片点击放大效果

1-1,首先定义一个页面image.wxml

<!--pages/image/image.wxml-->
<image src="{
   
   {imgList[0]}}" bindtap="preview" data-src="{
   
   {imgList[0]}}"></image>
<image src="{
   
   {imgList[1]}}" bindtap="preview" data-src="{
   
   {imgList[1]}}"></image>
<image src="{
   
   {imgList[2]}}" bindtap="preview" data-src="{
   
   {imgList[2]}}"></image>

这个页面很简单,就是放三个image用来显示imgList数组里的三张图片。

1-2,实现图片放大效果的核心方法如下。


上图是官方的示例。我们来看下实际中是如何使用的。

1-3,把image.js的完整代码贴出来。

Page({
  data: {
    imgList: [
      "https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=508387608,2848974022&fm=26&gp=0.jpg",
      "https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=3139953554,3011511497&fm=26&gp=0.jpg",
      "https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=1022109268,3759531978&fm=26&gp=0.jpg"
    ]
  },

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

这里也很简单,就是定义一个imgList图片数组。然后定义一个方法,在点击图片时实现图片放大预览的效果。
其实代码就这么多,我们就可以轻松的实现小程序图片的点击放大效果了。
是不是很简单。

二,轮播图点击放大预览

其实我们的轮播图也是可以实现点击放大的。

2-1,效果图

首先时轮播图如下

可以看出我们有三张轮播图,点击放大后的效果

2-2,wxml页面代码

<swiper indicator-dots>
  <swiper-item wx:for="{
   
   {imgList}}" bindtap="preview" data-index="{
   
   {index}}">
    <image src="{
   
   {item}}"></image>
  </swiper-item>
</swiper>

其实就是一个轮播图的实现,外加一个点击事件

2-3,js代码的实现

其实和我们上面多图片实现的代码一样

Page({
  data: {
    imgList: [
      "https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=508387608,2848974022&fm=26&gp=0.jpg",
      "https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=3139953554,3011511497&fm=26&gp=0.jpg",
      "https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=1022109268,3759531978&fm=26&gp=0.jpg"
    ]
  },

  //预览图片,放大预览
  preview(event) {
    let index = event.currentTarget.dataset.index
    wx.previewImage({
      current: this.data.imgList[index], // 当前显示图片的http链接
      urls: this.data.imgList // 需要预览的图片http链接列表
    })
  }
})

到这里我们就完整的实现了图片点击放大的效果了,是不是很简单。

猜你喜欢

转载自blog.csdn.net/qiushi_1990/article/details/115563176