1.10.0 新增
图片预览,支持切换、放大缩小等能力。
注: 由于此组件基于 create-api 实现,所以在使用之前,请确保自己了解过 create-api。
如下示例相关代码在这里。
默认使用
<cube-button @click="showImagePreview">Show ImagePreview</cube-button>
export default {
data() {
return {
imgs: [
'https://wx1.sinaimg.cn/mw1024/686d7361ly1fpha0mpd5uj21hc0tyws2.jpg',
'https://wx1.sinaimg.cn/mw1024/686d7361ly1fpha0ncnnej21hc0zetxo.jpg',
'https://wx1.sinaimg.cn/mw1024/686d7361ly1fpha0mqvu5j21hc0zkgzz.jpg',
'https://wx1.sinaimg.cn/mw1024/686d7361ly1fpha0m3ufuj21hc0zkqbj.jpg'
]
}
},
methods: {
showImagePreview() {
this.$createImagePreview({
imgs: this.imgs
}).show()
}
}
}
只需要提供 imgs
图片地址列表就可以了。
多图场景
<div class="imgs-container">
<img
:src="img"
v-for="(img, index) in imgs"
:key="img"
@click="handleImgsClick(index)">
</div>
export default {
data() {
return {
initialIndex: 0,
imgs: [
'https://wx1.sinaimg.cn/mw1024/686d7361ly1fpha0mpd5uj21hc0tyws2.jpg',
'https://wx1.sinaimg.cn/mw1024/686d7361ly1fpha0ncnnej21hc0zetxo.jpg',
'https://wx1.sinaimg.cn/mw1024/686d7361ly1fpha0mqvu5j21hc0zkgzz.jpg'
]
}
},
methods: {
handleImgsClick(index) {
this.initialIndex = index
const params = {
$props: {
imgs: this.imgs,
initialIndex: 'initialIndex', // 响应式数据的key名
loop: false
},
$events: {
change: (i) => {
// 必须更新 initialIndex
this.initialIndex = i
}
}
}
this.$createImagePreview({ ...params }).show()
}
}
}
大多数应用场景都是多图点击之后,实例化 image-preview 组件,展示的图片是每次被点击的图片。
自定义使用
<cube-button @click="showCustomImagePreview">Show Custom ImagePreview</cube-button>
export default {
data() {
return {
customIndex: 1,
imgs: [
'https://wx1.sinaimg.cn/mw1024/686d7361ly1fpha0mpd5uj21hc0tyws2.jpg',
'https://wx1.sinaimg.cn/mw1024/686d7361ly1fpha0ncnnej21hc0zetxo.jpg',
'https://wx1.sinaimg.cn/mw1024/686d7361ly1fpha0mqvu5j21hc0zkgzz.jpg',
'https://wx1.sinaimg.cn/mw1024/686d7361ly1fpha0m3ufuj21hc0zkqbj.jpg'
]
}
},
methods: {
showCustomImagePreview() {
this.$createImagePreview({
imgs: this.imgs,
initialIndex: this.customIndex,
loop: false,
speed: 500,
onChange: (i) => {
this.customIndex = i
},
onHide: () => {
console.log('hide')
}
}, (h) => {
return h('div', {
class: {
'image-preview-custom-header': true
},
slot: 'header'
}, this.customIndex + 1)
}).show()
}
}
}
我们可通过插槽定义自己的其他自定义需求,通过传入 Prop 重新定义图片预览行为。
参数 | 说明 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
imgs | 图片地址列表 | Array | - | [] |
initial-index | 初始索引 | Number | - | 0 |
loop | 是否可循环 | Boolean | true/false | true |
speed | 轮播速度,单位 ms | Number | - | 400 |
zIndex1.10.11 | 样式 z-index 的值 | Number | - | 100 |
preventDefault1.10.16 | 是否阻止默认行为,因底层使用 BetterScroll 实现 | Boolean | true/false | true |
名字 | 说明 | 作用域参数 |
---|---|---|
header | 顶部 header 内容 | current: 当前索引 |
footer | 底部 footer 内容 | current: 当前索引 |
事件名 | 说明 | 参数 |
---|---|---|
change | 查看图片索引改变 | 当前索引值 |
hide | 隐藏 | - |