layui实现图片上传成功后回显点击放大图片功能

2025-09-06前端开发
202

layui实现图片上传成功后回显点击放大图片功能,html代码部分:
<!-- html代码-->
<div class="layui-form-item">
    <label class="layui-form-label">上传图片</label>
    <div class="layui-input-block">
        <button type="button" class="layui-btn" id="license-auth-letter-image">
            <i class="layui-icon layui-icon-upload"></i> 点击上次图片
        </button>
        <div style="width: 132px;">
            <div class="layui-upload-list">
                <img class="layui-upload-img" id="ID-upload-demo-img" style="width: 100%; height: 92px;">
                <div id="ID-upload-demo-text"></div>
            </div>
            <div class="layui-progress layui-progress-big" lay-showPercent="yes" lay-filter="filter-demo">
                <div class="layui-progress-bar" lay-percent=""></div>
            </div>
        </div>
    </div>
</div>
js代码部分:
layui.use(function(){
    var upload = layui.upload;
    var layer = layui.layer;
    var element = layui.element;
    var $ = layui.$;
    // 单图片上传
    var uploadInst = upload.render({
        elem: '#license-auth-letter-image',
        url: '', // 实际使用时改成您自己的上传接口即可。
        accept: 'images',//指定允许上传时校验的文件类型 images 图片类型|file 所有文件类型|video 视频类型|audio 音频类型
        acceptMime: 'image/*',
        exts:'jpg|png|gif|bmp|jpeg', //允许上传的文件后缀
        data: {
            // 传递给上传接口的额外参数
            account: function(){
                return $('input[name="account"]').val();
            },
        },
        before: function(obj){
            // 预读本地文件示例,不支持ie8
            obj.preview(function(index, file, result){
                $('#ID-upload-demo-img').attr('src', result); // 图片链接(base64)
            });

            element.progress('filter-demo', '0%'); // 进度条复位
            layer.msg('上传中', {icon: 16, time: 0});
        },
        done: function(res){
            // 若上传失败
            if(res.code > 0){
                var demoText = $('#ID-upload-demo-text');
                var htmlContent = '<span style="color: #FF5722;">' + (res.msg ?? '上传失败') + '</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>';
                demoText.html(htmlContent);
                demoText.find('.demo-reload').on('click', function(){
                    uploadInst.upload();
                });
                return layer.msg(res.msg ?? '上传失败');
            }

            // 上传成功
            $('#ID-upload-demo-text').html(''); // 置空上传失败的状
            // 绑定点击事件,点击图片放大
            openPhotoLayer('#ID-upload-demo-img',res.data.url);
        },
        error: function(){
            // 演示失败状态,并实现重传
            var demoText = $('#ID-upload-demo-text');
            demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>');
            demoText.find('.demo-reload').on('click', function(){
                uploadInst.upload();
            });
        },
        // 进度条
        progress: function(n, elem, e){
            element.progress('filter-demo', n + '%'); // 可配合 layui 进度条元素使用
            if(n == 100){
                layer.msg('上传完毕', {icon: 1});
            }
        }
    });
});


// 点击图片放大
var openPhotoLayer = function (element,src) {
    layui.$(element).off('click').on('click', function (){
        layer.photos({
            photos: { // 图片层的数据源
                "id": '#ID-upload-demo-img', // 相册 id
                "data": [   // 相册包含的图片,数组格式
                    {
                        "src": src, // 原图地址
                    },
                ]
            },
        });
    });
}
 
The End
layui 图片上传

相关推荐

layui实现图片上传成功后回显点击放大图片功能
layui实现图片上传成功后回显点击放大图片功能,html代码部分: !-- html代码--div class="layui-form-item" label class="layui-form-label"上传图片/label div class="layui-input-block" button type="button" class="layui-btn" id="license-auth-letter-...
2025-09-06 前端开发
202

Layui实现数据表格中鼠标悬停图片放大离开时恢复原图
Layui实现数据表格中鼠标悬停图片放大离开时恢复原图的效果,最终效果如下图所示: 实现代码如下,在done函数中调用hoverOpenImg方法 var tableIns = window.demoTable = table .render({ elem : '#idTest', id : 'idTest', url : '/postData', //width : 150...
2025-09-04 前端开发
112

layui点击文本输入框调起弹出选择框并选择内容的两种方法参考
我们在用到layui时候,需要点击文本输入框调起弹出选择框并选择内容,这个要怎么操作呢?以下两种方法可以参考: 1、点击名称,弹出信息弹框,选择表格中的某一行,实现效果如下: html页面代码 !--计量器具弹出层-- div id="equipment" lay-filter="equipmen...
2025-09-02 前端开发
167

Layui treetable复选框联动解决方案
我们都知道layui treetable.js没有checked做联动。我们要实现Layui treetable复选框联动要怎么操作呢?实现的最终效果如下: 1. 在当前HTML文档checked监听函数中增加以下代码: //联动 table.on('checkbox(quan_list)', function(obj){ //console.log(obj);...
2025-06-06 前端开发
163

Layui中实现开关按钮的效果
按钮代码如下: {field: 'state', title: '状态', width: 85, templet: function (data) { if (data.state == 0) { return 'div input type="checkbox" checked="" name="codeSwitch" lay-skin="switch" id="open" lay-filter="switchTest" switchId=' + data...
2025-04-13 前端开发
112

layui.open属性打开一个弹出层
核心方法 var index = layer.open({ type : 2, title : title, maxmin : true, offset: '100px', area : [ '600px', '500px' ], content : prefix + url// iframe的url }); layer.full(index); //最小化 type - 基本层类 类型:Number,默认:0 layer提供了5...
2025-02-25 前端开发
82