ImagePreview

优质
小牛编辑
128浏览
2023-12-01

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 重新定义图片预览行为。

Props 配置

参数说明类型可选值默认值
imgs图片地址列表Array-[]
initial-index初始索引Number-0
loop是否可循环Booleantrue/falsetrue
speed轮播速度,单位 msNumber-400
zIndex1.10.11样式 z-index 的值Number-100
preventDefault1.10.16是否阻止默认行为,因底层使用 BetterScroll 实现Booleantrue/falsetrue

插槽

名字说明作用域参数
header顶部 header 内容current: 当前索引
footer底部 footer 内容current: 当前索引

事件

事件名说明参数
change查看图片索引改变当前索引值
hide隐藏-

最后更新:

类似资料

  • 值的立方体只是值与自身相乘的三倍。 For example, 2的立方体是(2 * 2 * 2)= 8。 算法 (Algorithm) 该程序的算法简单易行 - START Step 1 → Take integer variable A Step 2 → Multiply A three times Step 3 → Display result as Cube STOP 伪

  • Cube 是一个开源的基于 MongoDB 的数据分析工具 Cube 的收集器接收事件并将这些事件保持在 MongoDB 中。你可通过 UDP、HTTP POST 或者 WebSockets 来发送事件。同时 Cube 内置支持接受来自 collectd 的事件。

  • 在前面的章节中,我们已经看到了如何绘制三角形并旋转它。 现在,在本章中,您可以了解如何使用3D立方体,如何旋转它,如何在其上附加图像。 同样,本章提供了绘制3D立方体并为其应用颜色并将图像附加到其上的示例。 下面给出了绘制三维立方体并为其应用颜色的程序。 import java.awt.DisplayMode; import javax.media.opengl.GL2; import javax

  • 找到给定数字是偶数或奇数,是一个经典的C程序。 我们将在C中学习使用条件语句if-else 。 算法 (Algorithm) 这个程序的算法很简单 - START Step 1 → Take integer variable A Step 2 → Assign value to the variable Step 3 → Perform A modulo 2 and check

  • cube-flowable 工作流引擎旨在打造一套零代码、领先、且快速实用的引擎工具,助力开发者在面对工作流开发任务时,除去学习工作流框架知识和API的学习成本且不去关心工作流是什么技术,无需了解学习,安装使用cube-flowable工作流引擎并应用落地。 此工作流引擎是零代码或低代码的工作流引擎,安装配置开箱即可使用,完全适用于中国国情的工作流引擎。主要特点包括: 在线拖拽可视化业务表单,并自

  • cube-ui 是由滴滴开源的基于 Vue.js 实现的移动端组件库。 功能特性 质量可靠 由滴滴内部组件库精简提炼而来,经历了业务一年多的考验,并且每个组件都有充分单元测试,为后续集成提供保障。 体验极致 以迅速响应、动画流畅、接近原生为目标,在交互体验方面追求极致。 标准规范 遵循统一的设计交互标准,高度还原设计效果;接口标准化,统一规范使用方式,开发更加简单高效。 扩展性强 支持按需引入和后