• 回到首页
  • 网站建设
    • 高端网站定制
    • 品牌网站建设
    • 企业官网建设
    • 营销网站建设
    • 集团网站建设
    • 外贸网站建设
    • 政府/门户信息
    • 企业网站改版
    • 响应式网站建设
    • 企业形象设计
    • 企业MP4宣传视频
    • 网络营销推广
    • 网站在线客服系统
    • 域名注册
    • 服务器/主机租赁
    • 企业邮箱
  • 微信开发
    • 微信公众号
    • 微商城开发
    • 微官网建设
    • 小程序开发
  • 案例展示
    • 品牌创意
    • 宣传视频案例
    • 企业网站
    • 外贸网站
    • 移动应用
    • 形象设计
  • 新闻资讯
    • 宣威网站建设
    • 宣威网站优化
    • 宣威网站制作
    • 宣威网站制作
    • 宣威网络营销
    • 宣威网站维护
  • 解决方案
    • 品牌网站建设解决方案
    • 营销网站解决方案
    • 集团上市公司网站建设解决方案
    • 政府机构类网站建设解决方案
    • 网站定制建设解决方案
    • 外贸网站建设解决方案
    • 医药医疗网站解决方案
    • 旅游网站解决方案
    • 微信小程序定制开发解决方案
  • 瑞达杰昌建站
    • 公司简介
    • 我们的观点
    • 为什么选择我们?
    • 企业文化
    • 付款方式
  • 联系我们
    • 联系方式
    • 在线留言
    • 提交意向表
    • 在线客服
    • 来访路线
  • 客户专线:135-1821-9792

    服务热线:028-86922220

    我们专注于高端品牌网站创意设计与开发

宣威瑞达杰昌建站

宣威网站建设

专注高端品牌网站建设行业优质供应商!认准瑞达杰昌建站!
028-86922220135-1821-9792
  • 首页
  • 网站建设
      高端网站定制

      高端网站定制

      品牌网站建设

      品牌网站建设

      企业官网建设

      企业官网建设

      营销网站建设

      营销网站建设

      集团网站建设

      集团网站建设

      外贸网站建设

      外贸网站建设

      政府/门户信息

      政府/门户信息

      企业网站改版

      企业网站改版

      响应式网站建设

      响应式网站建设

      企业形象设计

      企业形象设计

      企业MP4宣传视频

      企业MP4宣传视频

      网络营销推广

      网络营销推广

      网站在线客服系统

      网站在线客服系统

      域名注册

      域名注册

      服务器/主机租赁

      服务器/主机租赁

      企业邮箱

      企业邮箱

    网站设计包含服务 网站制作流程 有效沟通方式 售后服务
  • 微信开发
      微信公众号

      微信公众号

      微商城开发

      微商城开发

      微官网建设

      微官网建设

      小程序开发

      小程序开发

  • 案例展示
    宣威瑞达杰昌建站公司作品案例展示
    • 品牌创意+ 品牌创意
    • 企业营销+ 宣传视频
    • 企业网站+ 大陆官网
    • 外贸网站+ 外贸官网
    • 移动应用+ 移动应用
    • 形象设计+ 形象设计
  • 新闻资讯
    • 宣威网站建设宣威网站建设
    • 宣威网站优化宣威网站优化
    • 宣威网站制作宣威网站制作
    • 宣威网站制作宣威网站制作
    • 宣威网络营销宣威网络营销
    • 宣威网站维护宣威网站维护
  • 解决方案
    • 品牌网站建设解决方案

      品牌网站建设解决方案

    • 营销网站解决方案

      营销网站解决方案

    • 集团上市公司网站建设解决方案

      集团上市公司网站建设解决方案

    • 政府机构类网站建设解决方案

      政府机构类网站建设解决方案

    • 网站定制建设解决方案

      网站定制建设解决方案

    • 外贸网站建设解决方案

      外贸网站建设解决方案

    • 医药医疗网站解决方案

      医药医疗网站解决方案

    • 旅游网站解决方案

      旅游网站解决方案

    • 微信小程序定制开发解决方案

      微信小程序定制开发解决方案

    • 更多+
  • 瑞达杰昌建站
    • 公司简介公司简介
    • 我们的观点我们的观点
    • 为什么选择我们为什么选择我们
    • 企业文化企业文化
    • 支付方式支付方式
  • 联系我们
    • 联系方式联系方式
    • 在线留言在线留言
    • 提交意向表提交意向表
    • 在线客服在线客服
    • 来访路线来访路线
  • 微信小程序实现自定义modal弹窗封装的方法

    前言

    目前创新互联公司已为近千家的企业提供了网站建设、域名、网站空间、网站托管维护、企业网站设计、从江网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

    小程序官方提供了 wx.showModal 方法,但样式比较固定,不能满足多元化需求,自定义势在必行~

    老规矩先上图

    微信小程序实现自定义modal弹窗封装的方法

    微信小程序实现自定义modal弹窗封装的方法

    点击某个按钮,弹出 modal框,里面的内容可以自定义,可以是简单的文字提示,也可以输入框等复杂布局。操作完点击取消或确定关闭 modal.

    如何使用

    将下面的 modal.wxml 、modal.wxss 、modal.js 、modal.json 四个文件复制到对应位置即可。

    封装完之后调用起来也很简单,看看调用的代码吧

    
       
      
      
    

    在modal中定义了 slot,所以可以将需要展示的任何布局包裹在 modal 中。

    上面的代码简化一下就是

    
      你自己的布局
    

    需要传四个属性

    show :用来控制 modal 的显示隐藏。

    height : 定义 modal 的高度,可以是百分比,也可以是具体单位如 600rpx。

    bindcancel :点击取消按钮的回调。

    bindconfirm :点击确定按钮的回调。

    自己的布局用一个 view 包起来放到 modal 标签里即可。

    开始封装

    首先在你存放自定义组件的文件夹里新建个 modal 文件夹,个人习惯将所有组件都放在 components 下面。

    然后右键新建 component,注意是 component 不是 page ,因为要作为组件引入到页面中。

    先看布局吧

    modal.wxml

    
     
      
       
      
      
       取消
       确定
      
     
    

    布局讲解

    最外层是半透明的 mask 蒙版,覆盖了整个页面。里面是包裹内容的 view ,内容区有两层,上面是放置传入布局的主内容区,下面是取消和确定两个按钮。

    这里把 slot 用 scroll-view 包裹了起来,处理了传入的布局高度超出内容区域的问题,如果超出将会滚动。所以不必担心传入的布局高度,大胆用就行。

    内容区的高度通过属性传入的 height 确定,默认是 80%

    modal.wxss
    .mask{
     position: absolute;
     left: 0;
     right: 0;
     top: 0;
     bottom: 0;
     display: flex;
     justify-content: center;
     align-items: center;
     background-color: rgba(0,0,0,0.4);
     z-index: 9999;
    }
    
    .modal-content{
     display: flex;
     flex-direction: column;
     width: 90%;
     /* height: 80%; */
     background-color: #fff;
     border-radius: 10rpx;
    }
    
    .modal-btn-wrapper{
     display: flex;
     flex-direction: row;
     height: 100rpx;
     line-height: 100rpx;
     border-top: 2rpx solid rgba(7,17,27,0.1);
    }
    
    .cancel-btn, .confirm-btn{
     flex: 1;
     height: 100rpx;
     line-height: 100rpx;
     text-align: center;
     font-size: 32rpx;
    }
    
    .cancel-btn{
     border-right: 2rpx solid rgba(7,17,27,0.1);
    }
    
    .main-content{
     flex: 1;
     height: 100%;
     overflow-y: hidden; 
    }

    css讲解

    css没啥讲的,直接复制过去就行。

    注意几个点:

    将 .mask 的 z-index 设置的高一些,确保能在所有布局的最上层。

    modal.js

    /**
     * 自定义modal浮层
     * 使用方法:
     * 
       你自己需要展示的内容
     
    
     属性说明:
     show: 控制modal显示与隐藏
     height:modal的高度
     bindcancel:点击取消按钮的回调函数
     bindconfirm:点击确定按钮的回调函数
    
     使用模块:
     场馆 -> 发布 -> 选择使用物品
     */
    
    Component({
    
     /**
      * 组件的属性列表
      */
     properties: {
      //是否显示modal
      show: {
       type: Boolean,
       value: false
      },
      //modal的高度
      height: {
       type: String,
       value: '80%'
      }
     },
    
     /**
      * 组件的初始数据
      */
     data: {
    
     },
    
     /**
      * 组件的方法列表
      */
     methods: {
      clickMask() {
       // this.setData({show: false})
      },
    
      cancel() {
       this.setData({ show: false })
       this.triggerEvent('cancel')
      },
    
      confirm() {
       this.setData({ show: false })
       this.triggerEvent('confirm')
      }
     }
    })

    Js 代码也很简单,在 properties 中定义两个需传入的属性 show 和 height ,并指定默认值。

    在 methods 中写点击取消和确定按钮的回调,点击按钮后先通过 this.setData({ show: false }) 将 modal 隐藏掉,再通过 this.triggerEvent('confirm') 将点击事件传递出去。

    modal.json
    {
     "component": true,
     "usingComponents": {}
    }

    json 主要是声明 modal 为组件

    结语

    以上就是简单的 modal 弹窗封装。如果不想要下面的确定取消两个按钮,内容区的所有内容都要外部传入,可以这样写

    
      
    

    如果需要多个 slot 也可以,小程序都支持。

    具体怎么实现看具体的业务需求吧,自定义的组件就是灵活性非常高,可以根据业务需求进行调整。

    以上所述是小编给大家介绍的微信小程序实现自定义modal弹窗封装的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对创新互联网站的支持!


    网站名称:微信小程序实现自定义modal弹窗封装的方法
    文章地址:http://xwwzsj.com/article/goishh.html

    其他资讯

    • java判断数据库表是否存在的方法
    • Fluentd中怎么使用REST接口监控Fluentd
    • Python学习—函数
    • 帝国CMS报错Table‘empirecms.phome_ecms_’doesn’texist的解决方法
    • mysql数据库主从复制添加第N个从库

    售后响应及时

    7×24小时客服热线

    数据备份

    更安全、更高效、更稳定

    价格公道精准

    项目经理精准报价不弄虚作假

    合作无风险

    重合同讲信誉,无效全额退款

    联系我们

    TEL

    135-1821-9792

    028-86922220

    地址:成都市太升南路288号锦天国际

    快捷导航

    Shortcut
    • 宣威网站建设
    • 品牌网站建设
    • 企业网站建设
    • 集团网站建设
    • 外贸网站建设
    • 企业宣传视频
    • 微信开发
    • 公众号开发
    • 微商城建设
    • 微官网建设
    • 小程序开发
    • 网站作品案例
    • 品牌网站案例
    • 集团网站案例
    • 企业网站案例
    • 外贸网站案例
    • 营销网站案例
    • 瑞达杰昌建站
    • 公司简介
    • 企业文化
    • 联系我们
    • 付款方式
    • 售后服务

    二维码

    QR CODE
    • 微信公众号

    • 手机端网站

    瑞达杰昌建站工作室是一家专注从事于高品质视觉体验及互联网设计开发,宣威网站建设,宣威网站设计,宣威网页设计,宣威网站制作,品牌网站建设,营销网站建设,集团网站建设,企业网站建设,外贸网站建设,响应式网站建设,小程序开发,微信开发,企业形象设计,企业宣传视频等服务,瑞达杰昌建站位于宣威市龙岗区大运软件小镇,瑞达杰昌建站拥有经验丰富的高级网站建设工程师和一流的网页高端设计人员,具备各种规模与类型网站建设的雄厚实力,在网站建设领域树立了自己独特的设计风格。
    友情链接 交换友情链接
    重庆小程序开发公司   梓潼网站建设   昆明柴油发电机出租   电子手表销售   成都发电机   昆明自动洗车机   沃尔沃电机组维修   宜宾网站建设公司   重庆电信五里店机房   成都网站建设   
    • 服务流程
    • 售后服务
    • 联系我们
    • 付款方式
    • 网站地图
    • sitemap

    Copyright © 2025 青羊区瑞达杰昌互联网信息服务工作室(个体工商户) 宣威建站 All Rights Reserved   蜀ICP备2025133229号-6

    • 网站建设
    • 服务流程
    • 售后服务
    • 付款方式
    • 关于我们
    • 网站地图

    Copyright © 2025 青羊区瑞达杰昌互联网信息服务工作室(个体工商户) 宣威建站

    蜀ICP备2025133229号-6  

    • 135-1821-9792
    • 业务咨询QQ
    • 提交合作意向表
    X
    合作意向表
  • 公司名称
  • 邮箱
  • 姓名
    电话
  • 您需要的服务
  • 您关注的地方
  • 预算
  • 验证码