【layui数据表格】 显示图片,鼠标进入图片,图片变大

本文介绍了一种使用JavaScript实现的图片放大效果。当鼠标悬停在表格中的图片上时,图片会放大显示,提供更好的查看体验。文章详细展示了如何利用layui框架和layer插件来实现这一功能。

实现效果如何,鼠标移动到图片上,图片自己放大!

在这里插入图片描述

 <table class="layui-hide" id="ContractCheck"></table>
        <script>
            layui.use('table', function () {
                var table = layui.table;
                table.render({
                    elem: '#ContractCheck'
                    , url: " http://localhost:8839/NO1/V1/ContractCheck/GetAllContract"
                    , parseData: function (res) {
                        if (res.length == 0) {
                            return {
                                "code": 0,
                                "msg": "",
                                "data": res
                            }
                        }
                        else {
                            return {
                                "code": 0,
                                "msg": "",
                                "count": res[0].total,
                                "data": res
                            }
                        }
                    }
                    , groups: 10
                    , layout: ['prev', 'page', 'next', 'skip', 'count', 'limit']
                    , cellMinWidth: 60 //全局定义常规单元格的最小宽度,layui 2.2.1 新增
                    , cols: [[
                        { type: 'checkbox', fixed: 'left' }
                        , { fixed: "", field: 'contract_Year', title: '年份', sort: true, templet: '#yearFormat', align: 'center', width: 90 }
                        , { field: 'organization', title: '期数', sort: true, align: 'center', width: 90 }
                        , { field: 'user_name', title: '姓名', align: 'center', width: 90, fixed: '' }
                        , { field: 'contract_Name', title: '合同', align: 'center', width: 200 }

                        , { field: 'contract_Copy_Url', title: '合同扫描件', templet: '#ContractPicture', align: 'center', width: 120 }
                        , { filed: 'showScreenhost', title: '缴费截图', align: 'center', width: 400, templet: '#showScreenhost' } /*< div > {{ showScreenhost(d.id) }}</div >*/
                        , { field: 'sc_check_state', title: '截图状态', align: 'center', templet: '#CheckState', width: 100 }
                        , { field: 'operate', title: '提醒', toolbar: '#barDemo', align: 'center', width: 100 }
                        , { fixed: 'right', title: '操作', toolbar: '#barOperator', align: 'center', width: 220 }
                    ]]
                    , page: true
                    , even: true
                    // , skin: 'line' //表格风格
                    , id: 'ContractReload'
                    , done: function (res, curr, count) {
                        hoverOpenImg();//显示大图
                        $('table tr').on('click', function () {
                            $('table tr').css('background', '');
                            $(this).css('background', '<%=PropKit.use("config.properties").get("table_color")%>');
                        });
                    }
                });
              //显示图片
          function hoverOpenImg() {
                    var img_show = null; // tips提示
                    $('td img').hover(function () {
                        var kd = $(this).width();
                        kd1 = kd * 6;          //图片放大倍数
                        kd2 = kd * 5 + 100;       //图片放大倍数
                        var img = "<img class='img_msg' src='" + $(this).attr('src') + "' style='width:" + kd1 + "px;'  margin=0px padding=0px/>";
                        img_show = layer.tips(img, this, {
                            tips: [2, 'rgba(41,41,41,.0)']
                            , area: [kd2 + 'px']
                        });
                    }, function () {
                        layer.close(img_show);
                    });
                    $('td img').attr('style', 'max-width:70px;display:block!important');
                }
### 实现Layui数据表格高度可由鼠标调节的方法 在Layui框架中,数据表格(table)的高度默认是通过配置项 `height` 设置的,但并未直接提供一个内置功能支持用户通过鼠标拖动来动态调整表格高度。不过,可以通过结合JavaScript和CSS实现这一需求。 以下是一个可行的解决方案,利用自定义事件监听器实现高度的动态调整: #### 1. 自定义高度调整功能 可以为表格容器添加一个可拖动的边界条,用户可以通过拖动该边界条来调整表格的高度。以下是具体实现步骤: ```html <div id="table-container" style="position: relative;"> <table id="demo-table" lay-filter="test"></table> <div id="resize-handle" style="position: absolute; bottom: 0; width: 100%; height: 5px; background-color: #ccc; cursor: ns-resize;"></div> </div> ``` 上述代码中,`#resize-handle` 是一个用于拖动的边界条[^2]。 #### 2. 添加事件监听器 通过JavaScript监听鼠标的按下、移动和释放事件,动态调整表格的高度。 ```javascript document.getElementById('resize-handle').addEventListener('mousedown', function(e) { let initialY = e.clientY; let initialHeight = document.getElementById('demo-table').style.height || '300px'; initialHeight = parseInt(initialHeight, 10); const onMouseMove = function(e) { const deltaY = e.clientY - initialY; const newHeight = initialHeight + deltaY; if (newHeight >= 100) { // 最小高度限制 document.getElementById('demo-table').style.height = newHeight + 'px'; } }; const onMouseUp = function() { document.removeEventListener('mousemove', onMouseMove); document.removeEventListener('mouseup', onMouseUp); }; document.addEventListener('mousemove', onMouseMove); document.addEventListener('mouseup', onMouseUp); }); ``` 此代码实现了通过拖动边界条调整表格高度的功能[^3]。 #### 3. 初始化Layui表格 确保在页面加载时正确初始化Layui表格,并设置初始高度。 ```javascript layui.use(['table'], function() { var table = layui.table; // 渲染表格 table.render({ elem: '#demo-table', height: 300, // 初始高度 url: '/data.json', // 数据接口 cols: [[ {field: 'id', title: 'ID', width: 80}, {field: 'name', title: '姓名', width: 120}, {field: 'age', title: '年龄', width: 80} ]], page: true }); }); ``` 以上代码片段展示了如何将高度调整功能与Layui表格结合使用[^4]。 --- ### 注意事项 - 确保表格容器具有明确的样式定位(如 `position: relative`),以便正确设置拖动手柄的位置。 - 拖动手柄的高度和样式可以根据实际需求进行调整。 - 需要对最小高度进行限制,避免用户将表格高度拖动至过小值影响正常使用。 ---
评论 14
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值