vue 点击放大,图片预览效果

news2025/3/29 8:16:38

背景:

在使用vue框架+element组件的背景下,我们对图片的展示需要点击放大(单张);如果是多张图片,要支持左右滑动查看多张图片(多张)。

单张图片放大,el-image图片组件,或者原生的img标签。

多张图片放大,el-image图片组件图片预览的自定义预览出效果。

这里也遇到了走马灯的图片的放大效果,给图片绑定了一个自定义的点击事件@click,用来解决走马灯的放大效果。

走马灯效果点击放大,Carousel走马灯,el-carousel。

走马灯单张放大实现了。。。

走马灯多张放大切换没有实现。。。

一、单张图片点击放大

el-image组件:

效果展示:

核心代码:

使用element组件,其中的 el-image图片组件

//组件属性绑定:preview-src-list属性
        <el-image
            v-if="item.photo"
            class="img-style"
            :src="BASEUrl + '/file/' + item.photo"
            :zoom-rate="1.2"
            :max-scale="7"
            :min-scale="0.2"
            :preview-src-list="[BASEUrl + '/file/' + item.photo]"
            show-progress
            :initial-index="4"
            fit="cover"
          />

接口数据:

//接口数据
[
    {
        "pid": 51,
        "cname": "川蓬安渡0012",
        "name": "川蓬安渡0012",
        "mmsi": 415931252,
        "carryPassengersNum": 15,
        "status": 2,
        "photo": "shipPhoto/9a80f083-32a7-41ee-b508-46c3cf385372.jpg",
    },
    {
        "pid": 52,
        "cname": "川蓬安渡0011",
        "name": "川蓬安渡0011",
        "mmsi": 415931259,
        "carryPassengersNum": 15,
        "status": 2,
        "photo": "shipPhoto/4cee0bbb-1b91-494d-a546-fff012fa96be.jpg",
    },
    {
        "pid": 78,
        "cname": "测试渡船",
        "name": "测试渡船",
        "mmsi": 432781135,
        "carryPassengersNum": 29,
        "status": -1,
        "photo": "shipPhoto/6c505716-d5e8-447d-9fe6-f41879a9a9a3.png",
    },
    {
        "pid": 79,
        "cname": "测试渡船1136",
        "name": "测试渡船1136",
        "mmsi": 432781136,
        "carryPassengersNum": 39,
        "status": -1,
        "photo": "shipPhoto/2b3816e5-d2a8-4caf-80ab-a714f68a12d8.jpg",
    }
]

 组件官网:点击跳转

 el-carousel组件:

效果展示:

核心代码:

//自定义一个点击事件@click="handleClick(item)"
<template>
      <el-carousel
        :interval="5000"
        arrow="always"
        height="190px"
        @change="imgChange"
        trigger="click"
      >
        <el-carousel-item
          v-for="(item, index) of state.repairData"
          :key="index"
        >
          <div class="img-box">
            <img
              style="width: 100%; height: 100%"
              :src="item.file"
              alt="一张图"
              @click="handleClick(item)"
            />
          </div>
        </el-carousel-item>
      </el-carousel>
//图片预览,绝对布局相对于系统,所以放在走马灯标签外面
    <el-image-viewer
      v-if="showPreview"
      :url-list="[state.imgSrc]"
      show-progress
      @close="showPreview = false"
    />
</template>

遇见的问题:

问题描述:

图片放大的效果是放大在走马灯组件内部,没有放大到系统

问题展示: 

图片放大的效果是放大在走马灯组件内部,没有放大到系统;解决办法:查看图片预览组件的position等位属性,查看父子标签的位置属性。

可以发现的是el-image-viewer标签是绝对定位,

解决办法:

总结:

 二、多张图片放大

el-image组件:

官网链接:点击跳转

el-carousel组件:

组件官网:点击跳转

el-carousel组件本身并没有click点击的事件。。。

自定义click事件: 

尝试自己用el-image-viewer组件绑定一个数组,实现效果不好,图片加载失败,经过多次排查哈错误原因:1、是否是图片跨域,图片本身不能加载成功;2、百度。发现可能是触发了vue的透传机制,目前解决不了 

 

失败思路:

我想的是el-image-viewer组件可以绑定一个数组的话,我就给它绑定一个数组。但是出现了问题,图片也加载失败 ,

[Vue warn]: Extraneous non-props attributes (show-progress) were passed to component but could not be automatically inherited because component renders fragment or text or teleport root nodes. 

[Vue warn]: 额外的非道具属性(显示进度)被传递给组件,但无法自动继承,因为组件渲染片段或文本或传送根节点。

很明显是你无意操作,无意触发了Vue3透传Attributes机制才没有出现报错,可当你的子组件中有多个根节点时,Vue使用透传Attributes机制也没有办法确定要在哪一个根节点继承属性时,就报出了上诉警告。

vue透传:点击跳转

写到这儿。。。多张图片放大的效果暂时不做了。。。

大概问题出在走马灯组件和图片组件之间的点击事件,用户鼠标点击的时候触发了vue3的透传

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2321728.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

笛卡尔轨迹规划之齐次变换矩阵与欧拉角、四元数的转化

一、笛卡尔轨迹规划需求 笛卡尔轨迹规划本质就是我们对机械臂的末端位置和姿态进行规划&#xff0c;其实也就是对末端坐标系的位姿进行规划。我们清楚末端坐标系的位姿是可以用齐次变换矩阵T来表示的&#xff0c;但这样表示的话&#xff0c;并不利于我们去做规划&#xff0c;所…

NPU上如何使能pytorch图模式

1 Pytorch的compile技术 PyTorch 的 torch.compile 是一个强大的功能&#xff0c;用于优化 PyTorch 模型的性能。它通过将 PyTorch 的动态图转换为静态图&#xff0c;并利用 Just-In-Time&#xff08;JIT&#xff09;编译技术&#xff0c;显著提高模型的推理速度和训练效率。 …

进制转换(c++)

由于进制转换属于基础且比较重要&#xff0c;所以我就写一个博客方便自己复习&#xff0c;过程中如有错误&#xff0c;还请指出。 常用的进制有二进制&#xff0c;八进制&#xff0c;十进制和十六进制。 常用的进制转换就是十进制转换成其他进制和其他进制转换成十进制 我们先…

2025-03-24 学习记录--C/C++-PTA 习题7-7 字符串替换

合抱之木&#xff0c;生于毫末&#xff1b;九层之台&#xff0c;起于累土&#xff1b;千里之行&#xff0c;始于足下。&#x1f4aa;&#x1f3fb; 一、题目描述 ⭐️ 习题7-7 字符串替换 本题要求编写程序&#xff0c;将给定字符串中的大写英文字母按以下对应规则替换&#…

为什么TCP需要三次握手?一次不行吗?

文章目录 1. 三次握手的过程2. 为什么需要三次握手&#xff1f;3. 握手过程中每一步的具体作用4. 简单比喻5. 为什么是三次握手&#xff0c;而不是两次或四次&#xff1f;6. 三次握手中的序列号有什么作用&#xff1f;7. 总结 1. 三次握手的过程 三次握手是建立 TCP 连接的过程…

SpringBoot2集成Elasticsearch8(使用spring-boot-starter-data-elasticsearch)

写在前面 使用spring-boot-starter-data-elasticsearch集成Elasticsearch8&#xff1f; What? 官方写的不支持啊&#xff1f;让我们来看下官方给出的版本建议。 官方地址&#xff1a; https://docs.spring.io/spring-data/elasticsearch/reference/elasticsearch/versions.…

【平台优化】持续调度参数在高负载大集群中的影响

持续调度参数在高负载大集群中的影响 背景介绍2种调度通信方式对集群的影响社区相关的讨论结论 背景介绍 这几年经历了我们大数据的Yarn集群的几次扩容&#xff0c;集群从原先的800多台增加到1300多台到现在的1600多台&#xff0c;在集群规模不断增加的过程中&#xff0c;有遇…

ElasticSearch 可观测性最佳实践

ElasticSearch 概述 ElasticSearch 是一个开源的高扩展的分布式全文检索引擎&#xff0c;它可以近乎实时的存储、检索数据&#xff1b;本身扩展性很好&#xff0c;可以扩展到上百台服务器&#xff0c;处理 PB 级别&#xff08;大数据时代&#xff09;的数据。ES 也使用 Java 开…

(一)飞行器的姿态欧拉角, 欧拉旋转, 完全数学推导(基于坐标基的变换矩阵).(偏航角,俯仰角,横滚角)

(这篇写的全是基矢变换矩阵)不是坐标变换矩阵,坐标变换矩阵的话转置一下,之后会有推导. 是通过M转置变换到P撇点.

基于Spring Boot + Vue的银行管理系统设计与实现

基于Spring Boot Vue的银行管理系统设计与实现 一、引言 随着金融数字化进程加速&#xff0c;传统银行业务向线上化转型成为必然趋势。本文设计并实现了一套基于Spring Boot Vue的银行管理系统&#xff0c;通过模块化架构满足用户、银行职员、管理员三类角色的核心业务需求…

数据库基础知识点(系列一)

1&#xff0e;数据库的发展历史分哪几个阶段&#xff1f;各有什么特点&#xff1f; 答&#xff1a;数据库技术经历了人工管理阶段、文件系统阶段和数据库系统三个阶段。 1&#xff09;人工管理阶段 这个时期数据管理的特点是&#xff1a; 数据由计算或处理它的程序自行携带…

JVM常用概念之身份哈希码

问题 当我们调用Object.hashCode时&#xff0c;如果没有用户没有提供哈希码&#xff0c;会发生什么&#xff1f; System.identityHashCode如何工作&#xff1f;它是否获取对象地址&#xff1f; 基础知识 在 Java 中&#xff0c;每个对象都有equals和hashCode &#xff0c;即…

vue 对接 paypal 订阅和支付

一个是支付一个是订阅&#xff0c;写的时候尝试把他们放到一个里面&#xff0c;但是会报错&#xff0c;所以分开写了 我们的页面&#xff0c;前三个为订阅最后一个是支付&#xff0c;我把他们放到一个数组里面循环展示的&#xff0c;所以我们判断的时候只要判断id是否为4&#…

基于javaweb的SpringBoot实习管理系统设计与实现(源码+文档+部署讲解)

技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论…

流影---开源网络流量分析平台(一)(小白超详细)

目录 流影介绍 一、技术架构与核心技术 二、核心功能与特性 流影部署 流影介绍 一、技术架构与核心技术 模块化引擎设计 流影采用四层模块化架构&#xff1a;流量探针&#xff08;数据采集&#xff09;、网络行为分析引擎&#xff08;特征提取&#xff09;、威胁检测引擎&…

Oracle 数据库安全评估(DBSAT)简明过程

下载DBSAT 从这里下载。 实际是从MOS中下载&#xff0c;即&#xff1a;Oracle Database Security Assessment Tool (DBSAT) (Doc ID 2138254.1)。 最新版本为3.1.0 (July 2024)&#xff0c;名为dbsat.zip&#xff0c;近45MB。 $ ls -lh dbsat.zip -rw-rw-r-- 1 oracle oins…

【T2I】Divide Bind Your Attention for Improved Generative Semantic Nursing

CODE: GitHub - boschresearch/Divide-and-Bind: Official implementation of "Divide & Bind Your Attention for Improved Generative Semantic Nursing" (BMVC 2023 Oral) ABSTRACT 新兴的大规模文本到图像生成模型&#xff0c;如稳定扩散(SD)&#xff0c;已…

【2025】基于springboot+uniapp的企业培训打卡小程序设计与实现(源码、万字文档、图文修改、调试答疑)

基于 Spring Boot uniapp 的企业培训打卡小程序设计与实现 系统功能结构图如下&#xff1a; 一、课题背景 在当今快节奏的商业环境中&#xff0c;企业培训对于员工的成长和企业的发展至关重要。为了满足企业对高效培训管理和员工便捷学习的需求&#xff0c;基于 Spring Boot …

探索AI的无限可能,体验智能对话的未来,大模型 API 演示

探索AI的无限可能&#xff0c;体验智能对话的未来&#xff0c;大模型 API 演示 效果展示&#xff1a; 项目概述 这是一个基于 Vue 3 TypeScript Vite 构建的 Vista AI 演示项目&#xff0c;旨在提供一个简洁易用的界面来展示 Vista AI 大语言模型的能力。项目包含 API 演示…

26考研——图_图的存储(6)

408答疑 文章目录 二、图的存储图的存储相关概念邻接矩阵存储方式邻接矩阵的定义顶点的度计算邻接矩阵的特点邻接矩阵的局限性 应用场景邻接矩阵的幂次意义&#xff08;了解即可&#xff09; 邻接表存储方式邻接表定义邻接表结构邻接表的特点 邻接矩阵和邻接表的适用性差异十字…