当前位置: 首页 > news >正文

LayUi点击查看图片组件layer.photos()用法(图片放大预览后滚动鼠标缩放、底部显示自定义标题)

LayUi官方文档更新后发现图片查看组件layer.photos()没有了 记录一下用法

例:

<ul id="">
   <li title="" ng-repeat="(val,item) in Obj" ng-click="gszzxxClick(item)">
      <img ng-src="{{item.src}}" alt="">
          <div class="text" title="">
              {{item.alt}}
          </div>
    </li>
</ul>
scope.gszzxxClick = function (obj) {
        layer.photos({
            photos: {
                "title": "Photos Demo",
                "start": 0,
                "data": [
                    {
                        "alt": obj.alt,
                        "pid": obj.pid,
                        "src": obj.src,
                    }
                ]
            },
            shade: [0.5, '#000'], // 设置遮罩层颜色为黑色,透明度为0.5
            shadeClose: true, // 设置点击遮罩层关闭图片查看器(可选)
            footer: true, // 是否显示底部栏 --- 2.8.16+
            success: function(){
                    // 在图片预览成功后添加鼠标滚轮事件监听器(鼠标滑轮滚动缩放图片)
                    $(document).on("mousewheel", ".layui-layer-photos img", function(event){
                        event.preventDefault(); // 阻止默认行为
                        var delta = event.originalEvent.deltaY || event.originalEvent.detail || -event.originalEvent.wheelDelta; // 获取滚轮方向
                        var scale = delta > 0 ? 0.9 : 1.1; // 定义缩放比例(缩小和放大)
                        var img = $(this); // 获取当前图片元素
                        var currentWidth = img.width(); // 当前宽度
                        var currentHeight = img.height(); // 当前高度
                        // 计算新的宽度和高度
                        var newWidth = currentWidth * scale;
                        var newHeight = currentHeight * scale;
                        // 设置新的宽度和高度(注意:这里可能需要添加额外的逻辑来限制最大和最小缩放比例)
                        img.css({
                            width: newWidth + 'px',
                            height: newHeight + 'px'
                        });
                        $('.layui-layer-page').css({
                            width: newWidth + 'px',
                            height: newHeight + 'px'
                        })
                        $('#layui-layer-photos').css({
                            width: newWidth + 'px',
                            height: newHeight + 'px'
                        })
                    });
                }
        });
    }

这里需要注意data中的alt、pid、src参数名需要规范 不然可能footer:true无法正常显示

相关文章:

  • 观察者模式
  • uniapp中@input输入事件在修改值只有第一次有效的问题解决
  • RocketMQ面试题:原理部分
  • 组学数据分析实操系列 |(四) 富集气泡图的绘制
  • 书籍翻页动画
  • 系统学习算法:专题十一 floodfill算法
  • 51c自动驾驶~合集51
  • ubuntu22.04离线安装K8S
  • 关于deep seek的本地化部署
  • PHP 网络编程介绍
  • 【信息系统项目管理师】第23章:组织通用管理 详解
  • 字符串操作总结(C# and Lua)
  • Langchain是什么,怎么使用
  • ls命令的全面参数解析与详尽使用指南
  • 计算机毕业设计Python考研院校推荐系统 考研分数线预测 考研推荐系统 考研可视化(代码+LW文档+PPT+讲解视频)
  • 反射内存网络(Reflective Memory Network)
  • 【学习】软件测试中的分类树法介绍
  • XXL-JOB使用及常见的问题
  • 基于开源Odoo模块、SKF Phoenix API与IMAX-8数采网关的资产密集型企业设备智慧运维实施方案
  • WDM_OTN_基础知识_波分站点与组网类型
  • 第1现场 | 美国称将取消制裁,对叙利亚意味着什么
  • 4台肺癌手术,2名“90后”患者,这届年轻人的肺怎么了?
  • 新能源汽车,告别混乱创新
  • 上海北外滩开发建设五周年交出亮眼答卷,未来五年有何新目标?
  • 中国一直忽视欧盟经贸问题关切?外交部:事实证明中欧相互成就,共同发展
  • 教育部:启动实施县中头雁教师岗位计划,支撑县中全面振兴