viewer万能的可放大缩小翻转切换上下件的图片预览插件

2024-05-12 04:52

本文主要是介绍viewer万能的可放大缩小翻转切换上下件的图片预览插件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

**

一、需求是上面展示一张大图,下面一排小图可以通过小图切换上面的大图,然后点击大图可以放大预览并可以左右切换上下件预览

**
二、具体使用方式引入相关的js、css,用cdn的方式引入加载会更快些

<link href="https://cdnjs.cloudflare.com/ajax/libs/viewerjs/1.11.6/viewer.min.css" rel="stylesheet">
<script src="https://cdnjs.cloudflare.com/ajax/libs/viewerjs/1.11.6/viewer.min.js"></script>

三、具体代码如下

<!DOCTYPE html>
<html>
<head><link href="https://cdnjs.cloudflare.com/ajax/libs/viewerjs/1.11.6/viewer.min.css" rel="stylesheet">
</head>
<style>#image-gallery{width:800px;object-fit: contain;}.pic-c{display: flex;align-items: center;}.pic-item-c{display: flex;margin-top:10px;}.pic-item-c .pic-item.active, .pic-item-c .pic-item:hover{opacity: 1;}.pic-item-c .pic-item{width: 70px;height: 70px;overflow: hidden;margin-right:10px;box-shadow: 0 1px 5px rgba(34, 25, 25, .8);-moz-box-shadow: 0 1px 5px rgba(34, 25, 25, .8);-webkit-box-shadow: 0 1px 5px rgba(34, 25, 25, .8);border: 1px solid rgba(34, 25, 25, .8);opacity: 0.6;}.pic-item-c img{width:100%;height:100%;object-fit: contain;}
</style>
<body><div id="image-gallery"><!-- 显示大图 --><img id="big-image" src="https://imagecdn.chengxuan.com/images/2023a/mini-641-1.jpg"><!-- 隐藏的大图用于viewer.js预览 --><div style="display:none;"><img src="https://imagecdn.chengxuan.com/images/2023a/mini-641-1.jpg"><img src="https://www.cguardian.com/images/GD-2024-CN005/GD-2024-CN005-008-004/_lastModified1714969274000_/351_10/m.jpg"></div></div><!-- 小图列表 --><div class="thumbnail-content"><div class="pic-item-c"><!-- 循环展示多个小图 --><div class="pic-item"><img class="small-image" src="https://imagecdn.chengxuan.com/images/2023a/mini-641-1.jpg" data-big-image="https://imagecdn.chengxuan.com/images/2023a/mini-641-1.jpg"></div><div class="pic-item"><img class="small-image" src="https://www.cguardian.com/images/GD-2024-CN005/GD-2024-CN005-008-004/_lastModified1714969274000_/351_10/m.jpg" data-big-image="https://www.cguardian.com/images/GD-2024-CN005/GD-2024-CN005-008-004/_lastModified1714969274000_/351_10/m.jpg"></div></div></div><script src="https://code.jquery.com/jquery-1.10.2.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/viewerjs/1.11.6/viewer.min.js"></script>
<script>var viewer;
var currentImageIndex = 0; // 用于记录当前展示的大图索引document.addEventListener('DOMContentLoaded', function() {$(".pic-item").first().addClass('active');document.querySelectorAll('.small-image').forEach((item, index) => {item.addEventListener('click', function(event) {// 阻止默认点击行为event.stopPropagation();event.preventDefault()$(this).parent().addClass('active');$(this).parent().siblings().removeClass('active');const bigImageUrl = this.getAttribute('data-big-image');document.getElementById('big-image').src = bigImageUrl;currentImageIndex = index; // 更新当前大图索引});});var hiddenImages = document.querySelector('#image-gallery div');viewer = new Viewer(hiddenImages, {url: 'src',toolbar: {zoomIn: 1,zoomOut: 1,oneToOne: 1,reset: 1,prev: 1,play: {show: 1,size: 'large',},next: 1,rotateLeft: 1,rotateRight: 1,flipHorizontal: 1,flipVertical: 1,},hidden: function () {viewer.destroy();},viewed: function() {//viewer.zoomTo(1);  最好还是不写根据图片大小自适应否则有的大图100%放大都溢出屏幕 了viewer.zoomTo();}});document.getElementById('big-image').addEventListener('click', function() {viewer.view(currentImageIndex);viewer.show();});
});</script></body>
</html>

注意事项:因为需要点击放大的时候可以左右切换其他小图的大图,所以我们需要提前准备好列表可以设置display:none页面看不到即可

 <div id="image-gallery"><!-- 显示大图 --><img id="big-image" src="https://imagecdn.chengxuan.com/images/2023a/mini-641-1.jpg"><!-- 隐藏的大图用于viewer.js预览 --><div style="display:none;"><img src="https://imagecdn.chengxuan.com/images/2023a/mini-641-1.jpg"><img src="https://www.cguardian.com/images/GD-2024-CN005/GD-2024-CN005-008-004/_lastModified1714969274000_/351_10/m.jpg"></div></div>

这里的大图和小图可以做不同的比例图片,不然大图放大会失真,看各自的功能需求。

 toolbar: {zoomIn: 1,zoomOut: 1,oneToOne: 1,reset: 1,prev: 1,play: {show: 1,size: 'large',},next: 1,rotateLeft: 1,rotateRight: 1,flipHorizontal: 1,flipVertical: 1,},

上面的toolbar可以设置具体展示那些操作按钮隐藏哪些,更根据需求可定
效果图如下
在这里插入图片描述
如果想去掉预览时候展示图片大小的字样可以配置
.viewer-title {
display: none !important;
}

这篇关于viewer万能的可放大缩小翻转切换上下件的图片预览插件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Python利用PIL进行图片压缩

《Python利用PIL进行图片压缩》有时在发送一些文件如PPT、Word时,由于文件中的图片太大,导致文件也太大,无法发送,所以本文为大家介绍了Python中图片压缩的方法,需要的可以参考下... 有时在发送一些文件如PPT、Word时,由于文件中的图片太大,导致文件也太大,无法发送,所有可以对文件中的图

java获取图片的大小、宽度、高度方式

《java获取图片的大小、宽度、高度方式》文章介绍了如何将File对象转换为MultipartFile对象的过程,并分享了个人经验,希望能为读者提供参考... 目China编程录Java获取图片的大小、宽度、高度File对象(该对象里面是图片)MultipartFile对象(该对象里面是图片)总结java获取图片

Java实战之自助进行多张图片合成拼接

《Java实战之自助进行多张图片合成拼接》在当今数字化时代,图像处理技术在各个领域都发挥着至关重要的作用,本文为大家详细介绍了如何使用Java实现多张图片合成拼接,需要的可以了解下... 目录前言一、图片合成需求描述二、图片合成设计与实现1、编程语言2、基础数据准备3、图片合成流程4、图片合成实现三、总结前

使用Python实现图片和base64转换工具

《使用Python实现图片和base64转换工具》这篇文章主要为大家详细介绍了如何使用Python中的base64模块编写一个工具,可以实现图片和Base64编码之间的转换,感兴趣的小伙伴可以了解下... 简介使用python的base64模块来实现图片和Base64编码之间的转换。可以将图片转换为Bas

css实现图片旋转功能

《css实现图片旋转功能》:本文主要介绍了四种CSS变换效果:图片旋转90度、水平翻转、垂直翻转,并附带了相应的代码示例,详细内容请阅读本文,希望能对你有所帮助... 一 css实现图片旋转90度.icon{ -moz-transform:rotate(-90deg); -webkit-transfo

Oracle数据库如何切换登录用户(system和sys)

《Oracle数据库如何切换登录用户(system和sys)》文章介绍了如何使用SQL*Plus工具登录Oracle数据库的system用户,包括打开登录入口、输入用户名和口令、以及切换到sys用户的... 目录打开登录入口登录system用户总结打开登录入口win+R打开运行对话框,输php入:sqlp

C#实现添加/替换/提取或删除Excel中的图片

《C#实现添加/替换/提取或删除Excel中的图片》在Excel中插入与数据相关的图片,能将关键数据或信息以更直观的方式呈现出来,使文档更加美观,下面我们来看看如何在C#中实现添加/替换/提取或删除E... 在Excandroidel中插入与数据相关的图片,能将关键数据或信息以更直观的方式呈现出来,使文档更

IDEA如何切换数据库版本mysql5或mysql8

《IDEA如何切换数据库版本mysql5或mysql8》本文介绍了如何将IntelliJIDEA从MySQL5切换到MySQL8的详细步骤,包括下载MySQL8、安装、配置、停止旧服务、启动新服务以及... 目录问题描述解决方案第一步第二步第三步第四步第五步总结问题描述最近想开发一个新应用,想使用mysq

C#中图片如何自适应pictureBox大小

《C#中图片如何自适应pictureBox大小》文章描述了如何在C#中实现图片自适应pictureBox大小,并展示修改前后的效果,修改步骤包括两步,作者分享了个人经验,希望对大家有所帮助... 目录C#图片自适应pictureBox大小编程修改步骤总结C#图片自适应pictureBox大小上图中“z轴

使用Python将长图片分割为若干张小图片

《使用Python将长图片分割为若干张小图片》这篇文章主要为大家详细介绍了如何使用Python将长图片分割为若干张小图片,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. python需求的任务2. Python代码的实现3. 代码修改的位置4. 运行结果1. Python需求