uni-app官網:https://uniapp.dcloud.io/api/media/image?id=previewimage
微信小程序官網:https://developers.weixin.qq.com/miniprogram/dev/api/media/image/wx.previewImage.html
uniapp 實現圖片預覽 單圖預覽和多圖預覽
關鍵點就是調用
uni.previewImage({
current: index,
urls: photoList
});
如果是單圖預覽,current對應就是0,urls:必須是單個某一條傳入。因為現在預覽一張圖片,你的current傳死就是0.所以urls也必須是字符串形式
如果是多圖預覽,current,對應就是在循環圖片數據的索引
,urls: 是數組形式傳入。因為uni.previewImage 要根據 current的索引,來動態匹配urls里面的數據
下面代碼演示
單圖預覽模式
previewImg(photoImg) {
let imgsArray = [];
imgsArray[0] = photoImg;
uni.previewImage({
current: 0,
urls: imgsArray
});
}
多圖預覽模式
<template>
<view>
<view>預覽圖片</view>
<view class="photosView">
<block v-for="(item, index) in photos" :key="index">
<view class="box"><image :src="item.src" mode="widthFix" @click="previewImage(index)"></image></view>
</block>
</view>
</view>
</template>
<script>
export default {
data() {
return {
photos: [
{
id: '1',
src:
'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1592807923709&di=dda3e0b4d055c8dfaaaa9168c570983a&imgtype=0&src=http%3A%2F%2F00.minipic.eastday.com%2F20170331%2F20170331113141_98c8105e504ff71e68d59a6eaa30bd7e_5.jpeg'
},
{
id: '2',
src:
'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1592807923711&di=6b8dfec17f7be8213ae23db6e1b7719a&imgtype=0&src=http%3A%2F%2F00.minipic.eastday.com%2F20170509%2F20170509200320_7dacf48b2bcc4b4ab7a0412b333ccb99_6.jpeg'
},
{
id: '3',
src:
'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1592807858562&di=262d91cfb1292942a257d17973a4843c&imgtype=0&src=http%3A%2F%2F00.minipic.eastday.com%2F20170303%2F20170303094555_7851ce3d965701f3201d4df2dde56592_8.jpeg'
},
{
id: '4',
src:
'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1592807923711&di=61c1d93f123d6039af37727812c64456&imgtype=0&src=http%3A%2F%2F00.minipic.eastday.com%2F20170318%2F20170318103604_eea6fa2eab8da83f770158463b7201f7_2.jpeg'
}
]
};
},
methods: {
previewImage(index) {
let photoList = this.photos.map(item => {
return item.src;
});
uni.previewImage({
current: index,
urls: photoList
});
}
}
};
</script>
<style scoped lang="less">
* {
margin: 0;
padding: 0;
}
.photosView {
display: flex;
justify-content: space-between;
flex-wrap: wrap;
.box {
width: 30%;
image {
width: 100%;
height: 100%;
}
}
}
</style>
js map()的方法
1、map()方法返回一個新數組,新數組中的元素為原始數組中的每個元素調用函數處理后得到的值。
2、map()方法按照原始數組元素順序依次處理元素。
注意:
-
map()不會對空數組進行檢測。
-
map()不會改變原始數組。
-
map() 函數的作用是對數組中的每一個元素進行處理,返回新的元素。
用法:
array.map(function(item,index,arr){})
item:必須。當前元素的的值。
index:可選。當前元素的索引。
arr:可選。當前元素屬於的數組對象。
示例:
const list = ["min","list","do","mo"]
const pro = list.map((item,index,array)=>{
// item 原數組的 每一個元素
// index 原數組 下標
// 當前元素屬於 的數組對象
return item + "1" // 處理后可以返回一個新數組
})
console.log(pro)
// 打印結果 (4) ["min1", "list1", "do1", "mo1"]
let array = [1, 2, 3, 4, 5];
let newArray = array.map((item) => {
return item * item;
})
console.log(newArray) // [1, 4, 9, 16, 25]