动态表格中点击图片放大

  1. 效果
    表格
    在这里插入图片描述
    点击图片
    在这里插入图片描述

  2. 代码

    1. 工具类 :imgBrowse.js
function browseImg(arr) {
    var preview = document.getElementById("preview");
    document.getElementById("preview").innerHTML = "";
    console.log(preview)
    for (var n = 0; n < arr.length; n++) {
        var domImg = document.createElement("img");
        domImg.style.width = '700px'
        domImg.style.height = '700px'
        domImg.src = arr[n];
        preview.appendChild(domImg)
    }
    var clickImgsShow = document.getElementsByClassName("clickImgsShow") //获取点击显示遮罩以及图片dom元素
    var imgContainer = document.getElementById("img-container")
    var close = document.getElementById("mask")
    var imgs = document.getElementById("preview").getElementsByTagName("img")  //获取img元素
    console.log(imgs)
    var last = document.getElementById("last-img")  //获取上一张元素
    var next = document.getElementById("next-img")  //获取下一张元素
    var imgsLen = imgs.length
    var index = 0
    // 初始化显示第一张图片
    imgsShow(index)

    // 点击上一张时
    last.addEventListener('click', function () {
        if (index === 0) {
            index = imgsLen - 1
            imgsShow(index)
        } else {
            index--
            imgsShow(index)
        }
    })
    // 点击下一张时
    next.addEventListener('click', function () {
        if (index === imgsLen - 1) {
            index = 0
            imgsShow(index)
        } else {
            index++
            imgsShow(index)
        }
    })
    // 点击关闭遮罩
    close.addEventListener('click', function () {
        close.style.display = ''
        imgContainer.style.display = ''
    })
}

// 传递当前显示index 隐藏其它图片
function imgsShow(index) {
    var imgs = document.getElementById("preview").getElementsByTagName("img")
    for (var i = 0; i < imgs.length; i++) {
        if (i === index) {
            imgs[i].style.display = ''
        } else {
            imgs[i].style.display = "none";
        }
    }
}
  1. 引用
<script src="../../static/lib/extend/imgBrowse.js" type="text/javascript"></script>
  1. 容器(放在html的body里面)
<div class="mask" id="mask"></div>
<div class="img-container" id="img-container">
    <div class="preview" id="preview">

    </div>
    <div class="left" id="last-img"><img class="left-imgs" src="../../static/images/last-img.png" alt="left"></div>
    <div class="right" id="next-img"><img class="next-imgs" src="../../static/images/next-img.png" alt="right"></div>
</div>
  1. js中使用
    动态表格中
 { field: 'imageUrl', title: 'xxx', align: 'left', templet: function (data) {
                        if (data.imageUrl != null && data.imageUrl != '') {
                            return '<img class="clickImgsShow" src=' + data.imageUrl + '  style="margin: 3px; border: black 2px; width : 27px; height : 27px;" ;/>'
                        }
                        return ''
                    }
                }
  // 初始化控件数据
        $(document).ready(function () {
       
            $('body').on('click', '.clickImgsShow', function () {
                var array = [];
                var index = $('.clickImgsShow').index($(this));
                var src = $('.clickImgsShow')[index].src;
                array.push(src);
                browseImg(array);
                $('#mask').show();
                $('#img-container').show();
            })
        });

最后 来一句歌缓解一下心情 :人生关死结轻轻送,千般色相偏看重

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值