vue3+element-plus+el-image实现点击按钮预览大图

这篇具有很好参考价值的文章主要介绍了vue3+element-plus+el-image实现点击按钮预览大图。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

需求:点击某个按钮实现el-image中预览大图的效果

官方文档:以下是官方的写法,并不能达到我们的要求,官方实现的功能是点击图片达到预览大图的效果。如果你的按钮就是图片,也可以达到目前的功能

<template>
  <div class="demo-image__preview">
    <el-image
      style="width: 100px; height: 100px"
      :src="url"
      :preview-src-list="srcList"
      :initial-index="4"
      fit="cover"
    />
  </div>
</template>

<script lang="ts" setup>
const url =
  'https://fuss10.elemecdn.com/a/3f/3302e58f9a181d2509f3dc0fa68b0jpeg.jpeg'
const srcList = [
  'https://fuss10.elemecdn.com/a/3f/3302e58f9a181d2509f3dc0fa68b0jpeg.jpeg',
  'https://fuss10.elemecdn.com/1/34/19aa98b1fcb2781c4fba33d850549jpeg.jpeg',
  'https://fuss10.elemecdn.com/0/6f/e35ff375812e6b0020b6b4e8f9583jpeg.jpeg',
  'https://fuss10.elemecdn.com/9/bb/e27858e973f5d7d3904835f46abbdjpeg.jpeg',
  'https://fuss10.elemecdn.com/d/e6/c4d93a3805b3ce3f323f7974e6f78jpeg.jpeg',
  'https://fuss10.elemecdn.com/3/28/bbf893f792f03a54408b3b7a7ebf0jpeg.jpeg',
  'https://fuss10.elemecdn.com/2/11/6535bcfb26e4c79b48ddde44f4b6fjpeg.jpeg',
]
</script>

<style scoped>
.demo-image__error .image-slot {
  font-size: 30px;
}
.demo-image__error .image-slot .el-icon {
  font-size: 30px;
}
.demo-image__error .el-image {
  width: 100%;
  height: 200px;
}
</style>

1.el-image-viewer

el-image-viewer组件是element官方的组件,只是文档中没有写出来,这个组件就是大图预览的组件,当引用ElImage组件的时候,需要把ElImageViewer也需要引入,就可以直接用这个组件了

<template>
	<div class="upload-single-img">
        <button @click="showImg">预览</button>
        <el-image-viewer v-if="showImageViewer" :url-list="[url]" @close="close" />
    </div>
</template>

<script lang="ts" setup name="UploadSingleImg">
    import { ref, computed, reactive, defineComponent } from 'vue'
    const showImageViewer = ref(false) //组件是否显示
    const url = ref([]) //预览大图的路径集合
    const showImg= () => { //预览大图
        showImageViewer.value = true
    }
    const close = () => { //必须要这个事件 不然点击右上角关闭按钮没有反应
        showImageViewer.value = false
    }
</script>

2.通过ref直接调用el-image的单击事件

以下是vue2的写法,网上搜索的,没有去实现过,我把这种写法改成vue3的写法发现好像不能实现,后面选择了第一种写法

<div class="demo-image__preview">
    <el-image
      style="width: 100px; height: 100px" ref="previewImg"
      :src="url"
      :preview-src-list="srcList">
    </el-image>
</div>
<el-button type="danger" @click="viewBigPicture">点击按钮查看大图</el-button>

import logo from '../../assets/logo.png';
export default {
  name: "vue_project",
  data() {
    return {
      url: logo,
      srcList: [logo]
    }
  },
  methods: {
    viewBigPicture(){
      this.$refs.previewImg.showViewer = true; //vue2写法第一种写法
      this.$refs.previewImg.clickHandler();     //vue2写法第二种写法
    }
  }
}

vue3写法文章来源地址https://www.toymoban.com/news/detail-528450.html

<div class="demo-image__preview">
    <el-image
      style="width: 100px; height: 100px" ref="previewImg"
      :src="url"
      :preview-src-list="srcList">
    </el-image>
</div>
<el-button type="danger" @click="viewBigPicture">点击按钮查看大图</el-button>

<script lang="ts" setup>
    import { ref, computed, reactive, defineComponent } from 'vue'
    const previewImg = ref(null)
    const viewBigPicture = () =>{
        previewImg.value.clickHandler()
    }

</script>

到了这里,关于vue3+element-plus+el-image实现点击按钮预览大图的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue3使用element-plus 树组件(el-tree)数据回显

    html搭建结构 js 非常好用,拿过来修改一下check事件,ref获取就直接可以使用了 

    2024年04月09日
    浏览(59)
  • vue3 element-plus 实现图片预览

    element-plus下有这么一个组件 el-image-viewer /,但是这个组件是没写在文档上面的,像普通组件一样使用即可 可以通过点击按钮实现图片预览,而非el-image组件只能通过点击图片实现预览 2.1封装组件 2.3组件使用 在需要使用的地方引入,然后使用即可,这不是重点,每个人使用的

    2024年02月15日
    浏览(59)
  • vue使用element-ui的el-image的src问题

    起初: 今天在学习vue的时候,遇到了一个问题,vue学的马马虎虎,语法也不扎实。遇到的问题在这里记录下来。 问题: 是使用el-image的src链接问题。 文件结构是这样的:  按照以往学习html的思想,在使用el-image标签的时候src我写成了src=\\\"../image/Anonymous.png\\\"。乍一看没什么问题

    2024年02月13日
    浏览(46)
  • vue3 - element-plus表格组件el-table实现鼠标拖曳排序功能,vue3 Table表格拖拽排序,表格每行使用鼠标拖动进行排序功能,表格拖拽排序实现(详细示例代码,一键复制开箱即用

    在vue3+elementPlus网站开发中,详细完成el-table表格的鼠标拖拽/拖曳/拖动排序,vue3使用element plus表格组件进行表格每行的拖动换位置排序功能(支持一键开启和关闭鼠标是否可拖动排序,代码易改造灵活),稍加改造可支持【树形复杂表格的排序】! 详细示例源代码,复制运行

    2024年04月09日
    浏览(64)
  • (二) Vue3 + Element-Plus 实现动态菜单栏

    系列介绍:Vue3 + Vite + TS 从零开始学习 项目搭建:(一) Vue3 + Vite + TS 项目搭建 实现动态菜单栏:(二) Vue3 + Element-Plus 实现动态菜单栏 实现动态面包屑:(三) Vue3 + Element-Plus 实现动态面包屑 实现动态标签页:(四) Vue3 + Element-Plus 实现动态标签页 实现动态主题色切换(demo):(五)

    2023年04月23日
    浏览(59)
  • Vue3+element-plus实现后台管理系统

     环境:node.js软件 、Vs code、vite、elemnt-plus、windicss(样式框架)     1、首先,使用npm 命令构建项目( vscode安装的插件 vscode中文显示插件   2、高亮提示插件volar   3、vue 3 sni 代码提示) 快速上手 | Vue.js    a. npm -v 查看node.js 版本    b.  npm  config get registry   查看注册镜像是

    2024年02月09日
    浏览(55)
  • Vue3 element-plus表单嵌套表格实现动态表单验证

    部分效果图如下: 另表格有添加和删除按钮,点击提交进行表单验证。 首先data格式必须是对象包裹数组 给表单绑定form数据 表格绑定tableData数据 给表单项增加验证规则 rules对应data rules对象,prop对应表单字段(注意是表格里每一行对应的字段 forms.tableData[下标].key) prop的关

    2024年02月14日
    浏览(44)
  • Vue3使用element-plus实现弹窗效果-demo

    2024年02月13日
    浏览(52)
  • 【iosH5开发】IOS浏览器对于Vue3 Element-plus el-input中,input.value.focus无法聚焦问题

    此次项目遇到了两个问题,一个是在Vue3中el-input的input.value.focus()无法触发,但是在PC或者安卓均可触发。 第二个问题是ios浏览器H5没有办法默认聚焦触发键盘输入

    2024年02月13日
    浏览(59)
  • vue3+element-plus 通过v-infinite实现下拉滚动无限加载

    v-infinite官网 v-infinite-scroll无限滚动组件使用详解  官网给到的基础案例: 自己写了一个简单的demo: 当使用v-infinite时,控制台会报错:  原因: 官方上的Issues解释是需要nextTick()之后再去显示 解决方法是组件挂载完成再去显示el-select组件 所以在上面demo中select组件加了v-if,

    2024年02月09日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包