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

相关文章

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需求

React实现原生APP切换效果

《React实现原生APP切换效果》最近需要使用Hybrid的方式开发一个APP,交互和原生APP相似并且需要IM通信,本文给大家介绍了使用React实现原生APP切换效果,文中通过代码示例讲解的非常... 目录背景需求概览技术栈实现步骤根据 react-router-dom 文档配置好路由添加过渡动画使用

IDEA常用插件之代码扫描SonarLint详解

《IDEA常用插件之代码扫描SonarLint详解》SonarLint是一款用于代码扫描的插件,可以帮助查找隐藏的bug,下载并安装插件后,右键点击项目并选择“Analyze”、“Analyzewit... 目录SonajavascriptrLint 查找隐藏的bug下载安装插件扫描代码查看结果总结Sona

Spring Boot实现多数据源连接和切换的解决方案

《SpringBoot实现多数据源连接和切换的解决方案》文章介绍了在SpringBoot中实现多数据源连接和切换的几种方案,并详细描述了一个使用AbstractRoutingDataSource的实... 目录前言一、多数据源配置与切换方案二、实现步骤总结前言在 Spring Boot 中实现多数据源连接

使用 Python 和 LabelMe 实现图片验证码的自动标注功能

《使用Python和LabelMe实现图片验证码的自动标注功能》文章介绍了如何使用Python和LabelMe自动标注图片验证码,主要步骤包括图像预处理、OCR识别和生成标注文件,通过结合Pa... 目录使用 python 和 LabelMe 实现图片验证码的自动标注环境准备必备工具安装依赖实现自动标注核心

Java操作xls替换文本或图片的功能实现

《Java操作xls替换文本或图片的功能实现》这篇文章主要给大家介绍了关于Java操作xls替换文本或图片功能实现的相关资料,文中通过示例代码讲解了文件上传、文件处理和Excel文件生成,需要的朋友可... 目录准备xls模板文件:template.xls准备需要替换的图片和数据功能实现包声明与导入类声明与

基于C#实现将图片转换为PDF文档

《基于C#实现将图片转换为PDF文档》将图片(JPG、PNG)转换为PDF文件可以帮助我们更好地保存和分享图片,所以本文将介绍如何使用C#将JPG/PNG图片转换为PDF文档,需要的可以参考下... 目录介绍C# 将单张图片转换为PDF文档C# 将多张图片转换到一个PDF文档介绍将图片(JPG、PNG)转

Qt QWidget实现图片旋转动画

《QtQWidget实现图片旋转动画》这篇文章主要为大家详细介绍了如何使用了Qt和QWidget实现图片旋转动画效果,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 一、效果展示二、源码分享本例程通过QGraphicsView实现svg格式图片旋转。.hpjavascript