layui 实现鼠标指向table中的图片放大显示图片

这个功能的实现,网上有不少,但是之前自己查阅的时候总是实现不了,后来同事刘表哥 大佬,查阅了一下,加上自己的一些想法,实现了该功能, c v 即可使用,就感觉蛮不错的,代码理解起来也相对简单明了。

如下图展示

 

话不多说上源码~~~

------------------------------------------------------------------------------------

{
    field: 'picAddress',
    title: '形象图片',
    align: 'center',
    templet:function (d) {
        if(d.picAddress != null && d.picAddress !=""){
            return '<img id="pitureChange" style="height: 100%"  src="'+d.picAddress+'">';
        }else{
            return '<img  id="pitureChange" style="height: 100%"  src="/public/images/nopic.jpg">';
        }
    }
}

 

 

//鼠标移动到table上的事件

$(document).on("mouseout", ".layui-table-main tr", function (data) {
    console.log(data)
//可以理解为鼠标移动到table时拿到了该行表格的所有数据,
//然后判断 data.relatedTarget.id 是否等于上面定义的<img> 的id  pitureChange 
    if (data.relatedTarget.id == "pitureChange") {
        //拿到 id 为 pitureChange img的 属性
        var data = data.fromElement.innerHTML;
        //由于是整个img 我们只需要图片地址 进行截取
        var arr = data.split('src="')[1].split('>')[0];
        //判断是否是图片格式,为图片格式则走openMsg分支
        if (!/.(gif|jpg|jpeg|png|gif|jpg|png)$/.test(arr)) {
            openMsg(arr)
        }
    }
});

  //直接弹出

function openMsg(data) {
    var data = '<img id="pitureChange" style="width: 220px;height: 150px" src="' + data + '"  >'
    layer.msg(data, {
        time: 3000  
    });
}

 

 

 ---------------------------------------------------------------------------------

下图是控制台打印的光标移动到table上的属性,如果有兴趣可以看看研究一下。

 

 

完~~

 

 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
您可以使用 layui 的 contextmenu 组件来实现鼠标右键点击表格的一条数据时弹菜单选项。 1. 引入 layui 和 contextmenu 组件 ```html <link rel="stylesheet" href="//cdn.bootcdn.net/ajax/libs/layui/2.5.7/css/layui.min.css"> <script src="//cdn.bootcdn.net/ajax/libs/layui/2.5.7/layui.min.js"></script> ``` 2. 创建表格 ```html <table id="table" lay-filter="table"></table> ``` 3. 渲染表格 ```javascript // 表格数据 const data = [ {id: 1, name: '张三', age: 18}, {id: 2, name: '李四', age: 20}, {id: 3, name: '王五', age: 22}, ]; // 渲染表格 layui.use('table', function() { const table = layui.table; table.render({ elem: '#table', data: data, cols: [[ {field: 'id', title: 'ID'}, {field: 'name', title: '姓名'}, {field: 'age', title: '年龄'}, ]], }); }); ``` 4. 初始化 contextmenu 组件 ```javascript // 初始化 contextmenu 组件 layui.use('contextMenu', function() { const contextMenu = layui.contextMenu; contextMenu.init({ target: '#table tbody tr', menu: [ {text: '编辑', click: function(e) { const data = e.data; // 编辑操作 }}, {text: '删除', click: function(e) { const data = e.data; // 删除操作 }}, ], }); }); ``` 这段代码会在表格的 tbody 的每一行上初始化 contextmenu 组件,当鼠标右键点击时会弹菜单选项,根据点击的选项执行相应的操作。 其,`target` 指定了要初始化的目标元素,这里是表格的每一行;`menu` 指定了菜单选项,包括文本和点击事件处理函数,`click` 函数的参数 `e` 包含了当前行的数据。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值