有两个方案,推荐直接看方案2吧,1有点low
功能描述:点击图片,放大预览
方案1:
在这里插入图片描述

安装

npm i wc-view --save-dev

使用

import wcView from 'wc-view';
import 'wc-view/style.css';
Vue.use(wcView);
img 标签时: 
<img class="wc-preview-img" :src="url" v-for="(url, key) in list" :key="key" @click="$preview($event, list, key)">

如果 list 是一个对象数组的时候,
需要额外为 $preview 传递一个参数, 用于标记对象里哪一个字段是图片 url;
<img class="wc-preview-img" :src="item.img" v-for="(item, key) in list" :key="key" @click="$preview($event, list, key,'img')">

背景图时:
<div v-for="(url, key) in list" :key="key" @click="$preview($event, list, key)">

转载地址:
来源

方安2,

官网,[传送门](https://github.com/fengyuanchen/viewerjs)

viewer.js简单使用方法,更详细的文档用法可看这里:http://www.dowebok.com/192.html

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title></title>
        <link rel="stylesheet" type="text/css" href="js/viewer.css"/>
        <script src="js/viewer.js" type="text/javascript" charset="utf-8"></script>
        <style type="text/css">
            .img-list{
                clear: both;
            }
            .img-list li{
                width:200px;
                height: 200px;
                margin: 10px;
                float: left;
            }
            img{
                width: 100px;
                height: 100px;
                display: block;
            }
        </style>
    </head>
    <body>
        <ul id="images1" class="img-list">
            <li>
                <img src="img/QQ图片20170920110853.png"/>
            </li>
            <li>
                <img src="img/QQ图片20170920110853.png"/>
            </li>
            <li>
                <img src="img/QQ图片20170920110853.png"/>
            </li>
            <li>
                <img src="img/QQ图片20170920110853.png"/>
            </li>
        </ul>
        <!--二-->
        <ul id="image2" class="img-list">
            <li>
                <img src="img/QQ图片20170920110853.png" data-imgurl="img/QQ图片20170920110853.png"/>
            </li>
            <li>
                <img src="img/QQ图片20170920110853.png" data-imgurl="img/QQ图片20170920110853.png"/>
            </li>
            <li>
                <img src="img/QQ图片20170920110853.png" data-imgurl="img/QQ图片20170920110853.png"/>
            </li>
            <li>
                <img src="img/QQ图片20170920110853.png" data-imgurl="img/QQ图片20170920110853.png"/>
            </li>
        </ul>
    </body>
    <script type="text/javascript">
        window.onload = function(){
            var viewer = new Viewer(document.getElementById('images1'), {});
            //
            var viewer = new Viewer(document.getElementById('image2'), {
                url: 'data-imgurl'
            });
        }
    </script>
</html>

配置
名称 类型 默认值 说明
inline 布尔值 false 启用 inline 模式
button 布尔值 true 显示右上角关闭按钮(jQuery 版本无效)
navbar 布尔值/整型 true 显示缩略图导航
title 布尔值/整型 true 显示当前图片的标题(现实 alt 属性及图片尺寸)
toolbar 布尔值/整型 true 显示工具栏
tooltip 布尔值 true 显示缩放百分比
movable 布尔值 true 图片是否可移动
zoomable 布尔值 true 图片是否可缩放
rotatable 布尔值 true 图片是否可旋转
scalable 布尔值 true 图片是否可翻转
transition 布尔值 true 使用 CSS3 过度
fullscreen 布尔值 true 播放时是否全屏
keyboard 布尔值 true 是否支持键盘
interval 整型 5000 播放间隔,单位为毫秒
zoomRatio 浮点型 0.1 鼠标滚动时的缩放比例
minZoomRatio 浮点型 0.01 最小缩放比例
maxZoomRatio 数字 100 最大缩放比例
zIndex 数字 2015 设置图片查看器 modal 模式时的 z-index
zIndexInline 数字 0 设置图片查看器 inline 模式时的 z-index
url 字符串/函数 src 设置大图片的 url
build 函数 null 回调函数,具体查看演示
built 函数 null 回调函数,具体查看演示
show 函数 null 回调函数,具体查看演示
shown 函数 null 回调函数,具体查看演示
hide 函数 null 回调函数,具体查看演示
hidden 函数 null 回调函数,具体查看演示
view 函数 null 回调函数,具体查看演示
viewed 函数 null 回调函数,具体查看演示
viewer GitHub 地址:
JS 版本:https://github.com/fengyuanchen/viewerjs
jQuery 版本:https://github.com/fengyuanchen/viewer

作者:前端小狮
来源:CSDN
原文:https://blog.csdn.net/m0_37885651/article/details/81060806
版权声明:本文为博主原创文章,转载请附上博文链接!

vue项目中,若不销毁页面,又加载了新的文章,出现新的图片,就会出问题
解决方法如下:

updated () {
	this.$nextTick(()=>{
			viewerId && viewerId.destroy();
			viewerId = new Viewer(document.getElementById('content'));
	})
},

来源:https://blog.csdn.net/qq_37540004/article/details/80271065

Logo

前往低代码交流专区

更多推荐