溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

微信小程序中怎么實(shí)現(xiàn)選擇圖片和放大預(yù)覽圖片功能

發(fā)布時(shí)間:2022-04-08 11:15:22 來源:億速云 閱讀:284 作者:iii 欄目:編程語言

這篇文章主要介紹“微信小程序中怎么實(shí)現(xiàn)選擇圖片和放大預(yù)覽圖片功能”的相關(guān)知識(shí),小編通過實(shí)際案例向大家展示操作過程,操作方法簡(jiǎn)單快捷,實(shí)用性強(qiáng),希望這篇“微信小程序中怎么實(shí)現(xiàn)選擇圖片和放大預(yù)覽圖片功能”文章能幫助大家解決問題。

微信提供了系統(tǒng)的方法來選擇圖片.

wx.chooseImage({})

此方法是用來選擇圖片的方法,具體使用如下:

 data: {
  avatarUrl:null
 },

首先在數(shù)據(jù)中定義接收數(shù)據(jù)的變量,然后調(diào)用方法選擇圖片,將圖片顯示出來。

bindViewTap:function(){
  var that = this;
  wx.chooseImage({
  // 設(shè)置最多可以選擇的圖片張數(shù),默認(rèn)9,如果我們?cè)O(shè)置了多張,那么接收時(shí)//就不在是單個(gè)變量了,
   count: 1, 
   sizeType: ['original', 'compressed'], // original 原圖,compressed 壓縮圖,默認(rèn)二者都有
   sourceType: ['album', 'camera'], // album 從相冊(cè)選圖,camera 使用相機(jī),默認(rèn)二者都有
   success: function(res){
    // 獲取成功,將獲取到的地址賦值給臨時(shí)變量
    var tempFilePaths = res.tempFilePaths;
    that.setData({
    //將臨時(shí)變量賦值給已經(jīng)在data中定義好的變量
     avatarUrl:tempFilePaths
    })
   },
   fail: function(res) {
    // fail
   },
   complete: function(res) {
    // complete
   }
  })
 }

此時(shí)我們定義的全局變量,也就是data中的url,已經(jīng)有值了,現(xiàn)在只需要在頁面中顯示即可。

//點(diǎn)擊此按鈕調(diào)用選擇圖片的方法,成功后將圖片顯示在image標(biāo)簽上
 <button bindtap="bindViewTap" type="submit">綁定事件</button>
<image src="{{avatarUrl}}"></image>

如果是多選的話,在顯示的時(shí)候,就不應(yīng)該直接顯示數(shù)據(jù)源了,這樣會(huì)報(bào)錯(cuò)的,因?yàn)榉祷氐氖菙?shù)組:

<image wx:for="{{avatarUrl}}" wx:key="unique" src="{{item}}"></image>

圖片預(yù)覽:

下面說一下圖片預(yù)覽:

首先在data中定義好數(shù)據(jù)源:

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'
  ]
 },

然后創(chuàng)建方法previewImage,實(shí)現(xiàn)圖片預(yù)覽:

 previewImage: function(e){
  var that = this,
  //獲取當(dāng)前圖片的下表
    index = e.currentTarget.dataset.index,
    //數(shù)據(jù)源
    pictures = this.data.pictures;
  wx.previewImage({
  //當(dāng)前顯示下表
   current: pictures[index],
   //數(shù)據(jù)源
   urls: pictures
  })
 }

然后再頁面中邊遍歷數(shù)據(jù),顯示:

<view>
 <image wx:for="{{pictures}}" wx:key="unique"src="{{item}}" data-index="{{index}}" bindtap="previewImage"></image>
</view>

先列表顯示全部圖片,綁定預(yù)覽方法,點(diǎn)擊圖片進(jìn)行左右預(yù)覽,

下面在給大家補(bǔ)充下微信小程序圖片放大預(yù)覽功能,具體內(nèi)容介紹如下所示:

需求:當(dāng)點(diǎn)擊圖片時(shí),當(dāng)前圖片放大預(yù)覽,且可以左右滑動(dòng)

微信小程序中怎么實(shí)現(xiàn)選擇圖片和放大預(yù)覽圖片功能

實(shí)現(xiàn)方式:使用微信小程序圖片預(yù)覽接口

微信小程序中怎么實(shí)現(xiàn)選擇圖片和放大預(yù)覽圖片功能

我們可以看到api需要兩個(gè)參數(shù),分別通過下面的data-list和data-src來傳到j(luò)s中

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代碼:

//圖片點(diǎn)擊事件
 imgYu:function(event){
 var src = event.currentTarget.dataset.src;//獲取data-src
 var imgList = event.currentTarget.dataset.list;//獲取data-list
 //圖片預(yù)覽
 wx.previewImage({
 current: src, // 當(dāng)前顯示圖片的http鏈接
 urls: imgList // 需要預(yù)覽的圖片http鏈接列表
 })
 }

1.給圖片添加一個(gè)點(diǎn)擊事件(imgYu)

2.使用event.currentTarget.dataset.自定義屬性名稱   來獲取data-的值 如event.currentTarget.dataset.src  (獲取data-src的值)

3.之后將獲取的兩個(gè)值 放到wx.previewImage接口 里面即可

效果圖片如下:可以左右滑動(dòng)上一張下一張

微信小程序中怎么實(shí)現(xiàn)選擇圖片和放大預(yù)覽圖片功能

關(guān)于“微信小程序中怎么實(shí)現(xiàn)選擇圖片和放大預(yù)覽圖片功能”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí),可以關(guān)注億速云行業(yè)資訊頻道,小編每天都會(huì)為大家更新不同的知識(shí)點(diǎn)。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI