数据图册页面(左边一列图片缩略图,右边展示图片大图)

本文主要是介绍数据图册页面(左边一列图片缩略图,右边展示图片大图),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近要写这么一个页面,左侧一列图片缩略图,点击左侧缩略图后有选中效果,然后右侧展示图片原图,还能够左右翻页查看。
最后写了一个demo出来,demo还不是很完善,需要自己修改,后面我也给出了修改建议。

文章目录

      • demo的最终效果:
      • 修改说明
      • 页面源代码

demo的最终效果:

在这里插入图片描述

我这里数据是写死的:
url是获取的本地图片,测试时候可以直接这样写。
到时候有数据时,直接把url封装到这个数组结构中就可以了。
在这里插入图片描述

修改说明

这里说一下我对这个demo的修改,供大家参考:
1、我这里在左侧加了滚动条,查看缩略图列表,用的是el的这个组件<el-scrollbar>

2、右侧大图我又加了点击放大查看,用的是el的<el-image>的:preview-src-list属性,给这个属性绑定一个url数组,可以把这个对象数组的url属性封装到一个url数组中。

可以参考elementui官网的大图预览:
https://element.eleme.io/#/zh-CN/component/image

3、这个样式是左侧缩略图选中时的灰色选中效果,可以自行修改颜色。
.thumbnail.active {
background-color: #ccc;
}
4、可以把右侧大图的宽度定死,这样图片跳转按钮就不会来回跳了
5、还可以把跳转按钮做成循环的,这样到最后一页再跳转的时候就会直接到第一页。
循环的写法:
就是多加一个else判断

// 上一张图片prevImage() {if (this.currentIndex > 0) {this.currentIndex--;} else {this.currentIndex = this.images.length - 1;}},// 下一张图片nextImage() {if (this.currentIndex < this.images.length - 1) {this.currentIndex++;} else {this.currentIndex = 0;}},

页面源代码

<template><!-- 图片展示组件 --><div class="image-gallery"><!-- 缩略图列表 --><div class="thumbnail-list"><divv-for="(image, index) in images":key="index":class="['thumbnail', { active: index === currentIndex }]"@click="setCurrentIndex(index)"><img :src="image.url" alt="Thumbnail" /><div class="image-name">{{ image.name }}</div> <!-- 显示图片名称 --></div></div><!-- 图片展示器 --><div class="image-viewer"><div class="image-container"><!-- 左翻页箭头 --><div class="arrow left" @click="prevImage">&#8249;</div><!--        &lt;!&ndash; 当前选中的图片 &ndash;&gt;-->
<!--        <img :src="currentImage.url" alt="Full Size Image" />--><!-- 当前选中的图片 --><div class="image-wrapper"><div class="image-name">{{ currentImage.name }}</div> <!-- 显示图片名称 --><div class="image-name">{{ currentImage.summary }}</div> <!-- 显示图片名称 --><img :src="currentImage.url" alt="Full Size Image" /></div><!-- 右翻页箭头 --><div class="arrow right" @click="nextImage">&#8250;</div></div></div></div>
</template><script>export default {data() {return {// 图片对象数组,包含链接和名称images: [{ url: require('@/assets/01.png'), name: '图片1' ,summary:'图片介绍'},{ url: require('@/assets/02.png'), name: '图片2' ,summary:'图片介绍'},{ url: require('@/assets/03.png'), name: '图片3' ,summary:'图片介绍'},],// 当前选中的图片索引,初始值为 0currentIndex: 0,};},computed: {// 计算属性,返回当前选中的图片对象currentImage() {return this.images[this.currentIndex];},},methods: {// 设置当前选中的图片索引setCurrentIndex(index) {this.currentIndex = index;},// 上一张图片prevImage() {if (this.currentIndex > 0) {this.currentIndex--;}},// 下一张图片nextImage() {if (this.currentIndex < this.images.length - 1) {this.currentIndex++;}},},};
</script><style scoped>.image-gallery {display: flex;height: 100vh;}.thumbnail-list {width: 200px;background-color: #f5f5f5;overflow-y: auto;}.thumbnail {padding: 10px;cursor: pointer;border-bottom: 1px solid #ccc;}.thumbnail img {width: 100%;}.thumbnail.active {background-color: #ccc;}.image-viewer {flex: 1;display: flex;align-items: center;justify-content: center;}.image-container {position: relative;}.arrow {position: absolute;top: 50%;font-size: 24px;color: #fff;cursor: pointer;user-select: none;background-color: rgba(0, 0, 0, 0.3);padding: 4px 8px;}.arrow.left {left: 10px;}.arrow.right {right: 10px;}img {max-width: 100%;max-height: 100%;}.image-name {margin-top: 5px; /* 图片名称与缩略图之间的上边距 */text-align: center; /* 居中显示图片名称 */}/*小的图片查看器样式*/.image-wrapper {/*      position: relative;*/margin-top: 40px;}
</style>

这篇关于数据图册页面(左边一列图片缩略图,右边展示图片大图)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/254689

相关文章

SQL Server修改数据库名及物理数据文件名操作步骤

《SQLServer修改数据库名及物理数据文件名操作步骤》在SQLServer中重命名数据库是一个常见的操作,但需要确保用户具有足够的权限来执行此操作,:本文主要介绍SQLServer修改数据... 目录一、背景介绍二、操作步骤2.1 设置为单用户模式(断开连接)2.2 修改数据库名称2.3 查找逻辑文件名

Python实现精准提取 PDF中的文本,表格与图片

《Python实现精准提取PDF中的文本,表格与图片》在实际的系统开发中,处理PDF文件不仅限于读取整页文本,还有提取文档中的表格数据,图片或特定区域的内容,下面我们来看看如何使用Python实... 目录安装 python 库提取 PDF 文本内容:获取整页文本与指定区域内容获取页面上的所有文本内容获取

canal实现mysql数据同步的详细过程

《canal实现mysql数据同步的详细过程》:本文主要介绍canal实现mysql数据同步的详细过程,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的... 目录1、canal下载2、mysql同步用户创建和授权3、canal admin安装和启动4、canal

Python基于微信OCR引擎实现高效图片文字识别

《Python基于微信OCR引擎实现高效图片文字识别》这篇文章主要为大家详细介绍了一款基于微信OCR引擎的图片文字识别桌面应用开发全过程,可以实现从图片拖拽识别到文字提取,感兴趣的小伙伴可以跟随小编一... 目录一、项目概述1.1 开发背景1.2 技术选型1.3 核心优势二、功能详解2.1 核心功能模块2.

使用SpringBoot整合Sharding Sphere实现数据脱敏的示例

《使用SpringBoot整合ShardingSphere实现数据脱敏的示例》ApacheShardingSphere数据脱敏模块,通过SQL拦截与改写实现敏感信息加密存储,解决手动处理繁琐及系统改... 目录痛点一:痛点二:脱敏配置Quick Start——Spring 显示配置:1.引入依赖2.创建脱敏

Go语言如何判断两张图片的相似度

《Go语言如何判断两张图片的相似度》这篇文章主要为大家详细介绍了Go语言如何中实现判断两张图片的相似度的两种方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 在介绍技术细节前,我们先来看看图片对比在哪些场景下可以用得到:图片去重:自动删除重复图片,为存储空间"瘦身"。想象你是一个

使用Python实现base64字符串与图片互转的详细步骤

《使用Python实现base64字符串与图片互转的详细步骤》要将一个Base64编码的字符串转换为图片文件并保存下来,可以使用Python的base64模块来实现,这一过程包括解码Base64字符串... 目录1. 图片编码为 Base64 字符串2. Base64 字符串解码为图片文件3. 示例使用注意

详解如何使用Python构建从数据到文档的自动化工作流

《详解如何使用Python构建从数据到文档的自动化工作流》这篇文章将通过真实工作场景拆解,为大家展示如何用Python构建自动化工作流,让工具代替人力完成这些数字苦力活,感兴趣的小伙伴可以跟随小编一起... 目录一、Excel处理:从数据搬运工到智能分析师二、PDF处理:文档工厂的智能生产线三、邮件自动化:

Python数据分析与可视化的全面指南(从数据清洗到图表呈现)

《Python数据分析与可视化的全面指南(从数据清洗到图表呈现)》Python是数据分析与可视化领域中最受欢迎的编程语言之一,凭借其丰富的库和工具,Python能够帮助我们快速处理、分析数据并生成高质... 目录一、数据采集与初步探索二、数据清洗的七种武器1. 缺失值处理策略2. 异常值检测与修正3. 数据

pandas实现数据concat拼接的示例代码

《pandas实现数据concat拼接的示例代码》pandas.concat用于合并DataFrame或Series,本文主要介绍了pandas实现数据concat拼接的示例代码,具有一定的参考价值,... 目录语法示例:使用pandas.concat合并数据默认的concat:参数axis=0,join=