zoukankan      html  css  js  c++  java
  • viewer 图片点击放大 用法汇总

    A 不用viewer插件

    1弹出框

    https://www.cnblogs.com/web1/p/8989967.html

    2表格中

    https://www.jianshu.com/p/c17f4f62704c

    3自己封装vue组件

    https://www.cnblogs.com/yesyes/p/6689082.html

    一、用viewer插件

    效果:

    Viewer.js - 强大的JS/jQuery图片查看器

    1、引入文件

    JS 版本:

    <link rel="stylesheet" href="css/viewer.min.css">
    <script src="js/viewer.min.js"></script>

    jQuery 版本:

    <link rel="stylesheet" href="css/viewer.min.css">
    <script src="js/jquery.min.js"></script>
    <script src="js/viewer.min.js"></script>

    注意:JS 版本和 jQuery 版本名字虽然一样,但代码不一样,不能通用,请到 github 上下载需要的版本。

    2、HTML

    <ul id="dowebok">
        <li><img src="img/tibet-1.jpg" alt="图片1"></li>
        <li><img src="img/tibet-2.jpg" alt="图片2"></li>
        <li><img src="img/tibet-3.jpg" alt="图片3"></li>
    </ul>

    3、JavaScript

    JS 版本:

    var viewer = new Viewer(document.getElementById('dowebok'));

    jQuery 版本:

    $('#dowebok').viewer();

    配置

    名称类型默认值说明
    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 回调函数,具体查看演示

     

    GitHub 地址:

     文档:  https://github.com/fengyuanchen/viewerjs/blob/master/README.md#options

    二:在vscode中用法

    链接:https://www.jianshu.com/p/c7e7c1550f42

    第一步安装:

    npm install v-viewer --save
    

    第二步注册调用:

    import Viewer from 'v-viewer'
    import 'viewerjs/dist/viewer.css'
    

    第三步注册:

    Vue.use(Viewer);
    Viewer.setDefaults({
      Options: { "inline": true, "button": true, "navbar": true, "title": true, "toolbar": true, "tooltip": true, "movable": true, "zoomable": true, "rotatable": true, "scalable": true, "transition": true, "fullscreen": true, "keyboard": true, "url": "data-source" }
    });
    

    第四部使用:

    <viewer :images="tupians">
          <i-col span="4" v-for="item in tupians">
              <div class="detailed">
                <img :src="item.img" alt="">
              </div>
          </i-col>
    </viewer>
    数据部分
            tupians:[
              {
                img:tupian1,
              },{
                img:tupian2,
              },{
                img:tupian3,
              }
            ],
     

    其他使用方法可以在github上查看viewerjs

     链接: https://github.com/fengyuanchen/viewerjs

    三: js用法,可以配置不采用src来源;
    来源:https://blog.csdn.net/m0_37885651/article/details/81060806
    相似:https://blog.csdn.net/archer119/article/details/78390203
    <!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{
                    200px;
                    height: 200px;
                    margin: 10px;
                    float: left;
                }
                img{
                     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>
    View Code

    在非Vscode项目的用法跟普通js用法一样。

    四、直接使用vue和iview生成后的脚本开发,有很多坑!
     
    0、项目中有各模块切换和显示隐藏的需要,iview tabs控制显示隐藏只能用if,show无效;if意味着重新渲染;
    所以每次渲染id都会删除和重建,需要重新 new Viewer。
    1、执行顺序问题,解决:nextTick
    2 viewer组件旧版本有一个bug,这个bug导致无法viewer无法弹出到body,在新版本中已经解决了这个问题
    老版本解决方法:
    1、去复制粘贴新的js和css脚本,然后。

    this.$nextTick(function () {
       viewer = new Viewer(document.getElementById('dowebok'));
    })

    2、修改viewed方法,将 viewer-container样式所在的对象附加给body

    this.$nextTick(function () {
    //viewer = new Viewer(document.getElementById('dowebok'), {
    // viewed: function () {
    // $("body").append($(".viewer-container"))
    // }
    //});
    })

     
    五  iview 轮播图 +viewer
                                        <div id="dowebok_qm">
    
                                            <Carousel v-bind:radius-dot="carouselDot_qm" dots="outside" v-bind:height="imgHeight2+'px'" v-model="carouselValue_qm" style="text-align:center;">
                                                <div v-for="item in imgData_qm">
                                                    <Carousel-Item>
                                                        <img v-bind:src="item.src" style="height:inherit;auto;cursor:pointer;" />
                                                        <div><span class="carousel-text"> {{item.textName}}</span></div>
                                                    </Carousel-Item>
                                                </div>
                                            </Carousel>
                                        </div>

    图片名称显示的样式

    .carousel-text { 
    position: relative;
    bottom: 25px;
    100%;
    font-size: 13px;
    /* auto;*/ /*也可以*/
    text-align: center;
    color: white;
    background-color: rgba(0,0,0,0.3);
    }

    vue的 methods中写方法

     getImageListByPlantID: function (id) {

    //根据id发送 ajax请求 从数据库获取该id对应的图片数据列表

    this.imgData_qm=[];

    let srcPart = '/ProjectFrist/Api/image/'
    for (i = 0, len = imageList.length; i < len; i++) {

       // 拼接对象

       that.imgData_qm.push({ src: srcPart + imageList[i].ImageID + part, name: imageList[i].FileName, textName: imageList[i].textName });

    }

    if (that.imgData_qm.length > 10) {
    that.carouselDot_qm = true; //如果图片数量大于10个则将轮播图的 横杠 换成 点。
    }

    vm.$nextTick(function () {
    console.log("dowebok_qm 被点中");
    viewer = new Viewer(document.getElementById('dowebok_qm'));
    });

    }

    效果如下

    点击图片,viewer在弹出一张大图。

     

     
    我们的一只脚已经迈入的富前端时代,前端越来越模块化,各种开发包越来越强大!
    先进生产工具和强大的生态,将大大提高开发效率,反之亦然!
    微软的MVC模式已经远远落后于,前后端完全分离才是未来!
    以后选择用vscode开发环境、各种前端包、vue全家桶+elementUI开发。
     
     
     
     
     
     
  • 相关阅读:
    HDOJ 2095 find your present (2)
    HDOJ 2186 悼念512汶川大地震遇难同胞——一定要记住我爱你
    九度 1337 寻找最长合法括号序列
    九度 1357 疯狂地Jobdu序列
    HDOJ 1280 前m大的数
    九度 1343 城际公路网
    九度 1347 孤岛连通工程
    HDOJ 2151 Worm
    九度 1342 寻找最长合法括号序列II
    九度 1346 会员积分排序
  • 原文地址:https://www.cnblogs.com/hao-1234-1234/p/11011249.html
Copyright © 2011-2022 走看看