图片预览 element-plus 带页码

vue3、element-plus项目中,点击预览图片,并显示页码效果如图

安装 | Element Plus

html 复制代码
  <div class="image__preview">
    <el-image
      style="width: 100px; height: 100px"
      :src="imgListArr[0]"
      :zoom-rate="1.2"
      :max-scale="7"
      :min-scale="0.2"
      :preview-src-list="imgListArr"
      :initial-index="0"
      fit="cover"
      @switch="onSwitch"
      @close="closePreview"
    >
      <template #viewer >
        <div class="preview-page" >{{imgCur}}/{{imgListArr.length}}</div>
      </template>
    </el-image>
  </div>
javascript 复制代码
<script setup>
//预览图片的数组
const imgListArr = ref([
  'https://img1.baidu.com/it/u=1461245034,737626739&fm=253&fmt=auto&app=138&f=JPEG?w=751&h=500',
  'https://img0.baidu.com/it/u=1272888261,2716721561&fm=253&fmt=auto&app=138&f=JPEG?w=800&h=500',
  'https://img1.baidu.com/it/u=3390302890,2011160393&fm=253&fmt=auto&app=120&f=JPEG?w=800&h=500',
  'https://img0.baidu.com/it/u=3944258063,3004524010&fm=253&fmt=auto&app=120&f=JPEG?w=1280&h=800',
])

//页码默认1开始
const imgCur = ref(1)

//监听当前切换的图片
const onSwitch = (index) =>{
  imgCur.value = index+1
}
//监听预览的关闭
const closePreview = () =>{
  //关闭时需要把页码重置1,要不然切换到比如5、6时关闭预览,下次打开就是5、6
  imgCur.value = 1
}

</script>
css 复制代码
<style scoped lang="less">
.image__preview{
  float: left;
  .el-image {
    border:1px solid rgb(204 204 204 / .5);
  }
  .preview-page{
    position: absolute;
    background:rgb(0 0 0 / .5);
    text-align: center;
    color:#fff;
    left: 50%;
    bottom:80px;
    transform: translateX(-50%);
    width:50px;
    height:30px;
    padding: 0 23px;
    border-radius:15px;
    line-height:30px;
  }
}
.image__error{
  display: inline-block;
  .image-slot {
    font-size: 30px;
    .el-icon {
      font-size: 30px;
    }
  }
  .el-image {
    width: 100%;
    height: 200px;
  }
}
</style>

src 默认展示的图片地址

initial-index 默认点开查看的第几个大图的索引

preview-src-list 要预览的图片数组

switch 监听切换图片方法的回调,放回当前预览的图片索引

close 监听关闭预览图片事件

viewer 是官网提供的插槽,官网提供的预览没有页码,可以通过插槽和switch回调来写页码

预览图片官网API:Image 图片 | Element Plus

相关推荐
飘尘10 分钟前
前端转型全栈(Java后端)的快速上手指引
前端·后端·全栈
一颗烂土豆19 分钟前
Meshopt 压缩深度解析,为什么它比 Draco 更快
前端·javascript·webgl
浏览器工程师1 小时前
AI Agent 接浏览器任务,先别让它一路点到底
前端·后端
雨季mo浅忆1 小时前
VSCode自动格式化三要素
前端
爱勇宝2 小时前
深扒 Anthropic 1680 位工程师简历:应届生几乎没机会,AI 公司最缺的不是博士
前端·后端·程序员
kyriewen3 小时前
同事每天催我 Code Review,我写了个脚本让 AI 替我 review PR——现在他反过来催 AI 了
前端·javascript·ai编程
user20585561518135 小时前
Windows 项目安装时报 `node-sass` 错误,如何快速处理
前端
LiaCode5 小时前
Redis 在生产项目的使用
前端·后端
LiaCode5 小时前
一天学完 redis 的爽翻版核心知识总结
前端·后端
大刚测试开发实战5 小时前
如何内网穿透访问本地私有化部署的TestHub
前端·后端·github