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插件

效果:

<!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>

在非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;width:auto;cursor:pointer;" />
                                                    <div><span class="carousel-text"> {{item.textName}}</span></div>
                                                </Carousel-Item>
                                            </div>
                                        </Carousel>
                                    </div>

 

图片名称显示的样式

.carousel-text {
position: relative;
bottom: 25px;
width: 100%;
font-size: 13px;
/*width: 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开发。
版权声明:本文为posted原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/hao-1234-1234/p/11011249.html