微信小程序弹窗组件

微信小程序弹窗组件介绍最近在开发小程序应用 发现小程序当中有关于组件的介绍非常的少 当前自己做的项目当中 有出现过这种情况 所以自己就封装了一个小程序的弹窗组件 现在把自己的心得分享给大家 大家一起来学习吧 效果图需求背景项目需求是需要在页面上通过点击按钮 然后弹出弹窗蒙层 因为小小程序当中经常会用到弹窗 因此这里我直接将弹窗封装成了一个组件 下次使用的时候 直接调用就可以了 实现步骤在微信小程序当中 在当前项目当中 新建一个 component 文件夹 这个文件夹专门用来存放我们

介绍

最近在开发小程序应用, 发现小程序当中有关于组件的介绍非常的少, 当前自己做的项目当中,有出现过这种情况, 所以自己就封装了一个小程序的弹窗组件, 现在把自己的心得分享给大家, 大家一起来学习吧~~

效果图

在这里插入图片描述

需求背景

项目需求是需要在页面上通过点击按钮, 然后弹出弹窗蒙层; 因为小小程序当中经常会用到弹窗, 因此这里我直接将弹窗封装成了一个组件, 下次使用的时候,直接调用就可以了~~~

实现步骤

  1. 微信小程序当中, 在当前项目当中, 新建一个component 文件夹, 这个文件夹专门用来存放我们要使用的组件, 然后在 component 文件夹下右击, 新建文件夹popup , 这里就是我们要用的弹窗组件的文件夹, 再右击popup文件夹, 选择 新建component , 然后直接输入popup 即可, 小程序内部会为我们自动生成.wxss , wxml , json , js等模板文件, 如下图所示, popup文件夹下的文件为我们的组件, index文件夹下的文件为首页上页面:
    在这里插入图片描述

  2. popup弹窗组件的代码部分;
    popup.wxml

<view class="wx-popup" style="margin:-{ 
      { 
      windowHeight/2}}px 0 0 -{ 
      { 
      windowWidth/2}}px" hidden="{ 
    {flag}}"> <view class='popup-container'> <view class="wx-popup-title">{ 
  {title}} 
     view>  
    {content}} --> <view class="wx-popup-con" > <text>{ 
   {content_leftText}} 
      text> <text class="content_money">{ 
    {content_money}} 
       text> <text>{ 
     {content_rightText}} 
        text>  
         view> <view class="wx-popup-btn"> <view class="closeBtn"> <view class="close-popup" bindtap='_close'> <view>X 
          view>  
           view>  
            view>  
             view>  
              view>  
               view> 

popup.wxss

.wx-popup { 
    position: fixed; left: 0; bottom: 0; top: 0; z-index: 2000; width: 100%; height: 100%; background: rgba(0, 0, 0, .6); } .popup-container { 
    position: fixed; left: 10%; top: 20%; width: 80%; max-width: 600rpx; border-radius: 20rpx; box-sizing: bordre-box; background: #fff; z-index: 2000; } .wx-popup-title { 
    width: 100%; padding: 28rpx; text-align: center; font-size: 36rpx; font-weight: bold; border-bottom: 5rpx solid #9EA3BA; box-sizing: border-box; } .wx-popup-con { 
    margin: 50rpx 10rpx; text-align: center; padding: 0 86rpx; } .wx-popup-con text { 
    padding-bottom: 10rpx; } .content_money { 
    color: #FFB258; } .wx-popup-btn { 
    display: flex; justify-content: space-around; margin-bottom: 40rpx; } .wx-popup-btn text { 
    display: flex; align-items: center; justify-content: center; width: 30%; height: 88rpx; border: 2rpx solid #ccc; border-radius: 88rpx; } .wx-popup-btn .closeBtn { 
    position: fixed; left: 45%; bottom: 30%; } .wx-popup-btn .close-popup { 
    position: relative; height: 80rpx; width: 80rpx; border: 5rpx solid #fff; border-radius: 50%; } .wx-popup-btn .close-popup view { 
    position: absolute; left: 30%; top: 8%; font-size: 50rpx; color: #fff; } 

popup.js

Component({ 
    options: { 
    multipleSlots: true // 在组件定义时的选项中启用多slot支持 }, / * 组件的属性列表 */ properties: { 
    title: { 
    // 属性名 type: String, // 类型(必填),目前接受的类型包括:String, Number, Boolean, Object, Array, null(表示任意类型) value: '标题' // 属性初始值(可选),如果未指定则会根据类型选择一个 }, // 弹窗内容 content_leftText: { 
    type: String, value: '内容' }, content_money: { 
    type: String, value: '内容' }, content_rightText: { 
    type: String, value: '内容' }, }, / * 组件的初始数据 */ data: { 
    flag: true, }, / * 组件的方法列表 */ methods: { 
    //隐藏弹框 hidePopup: function () { 
    this.setData({ 
    flag: !this.data.flag }) }, //展示弹框 showPopup () { 
    this.setData({ 
    flag: !this.data.flag }) }, /* * triggerEvent 用于触发事件 */ _close() { 
    this.triggerEvent("close"); } } }) 
  1. 完成模板文件的工作后, 接下来就是在首页当中对这个组件进行配置, 在index文件夹当中对index.json文件进行配置, 代码如下:
    在这里插入图片描述

  2. 在首页当中进行使用,代码如下:
 <view class="index_popup"> <view class="btn-area"> <button type="primary" bindtap="showPopup">点击预测价钱 
     button>  
      view> <popup id='popup' title='预测价格' content_leftText='您好,预测价格为' content_money='{ 
      {content_money}}' content_rightText='元 , 预测价格和实际价格存在偏差,请耐心等候专业顾问为您服务。' bind:close="_close">  
       popup>  
        view> 
  1. index.wxss的样式
.index_popup .btn-area button { 
    background-image: linear-gradient(to right, rgba(36, 162, 255), rgba(36, 172, 255), rgba(36, 192, 255)); font-size: 34rpx; font-weight: normal; border-radius: 50rpx; padding: 18rpx 30rpx; margin-top: 100rpx; } 
  1. index.js 文件里, 配置对应的点击事件, 还有操作数据
// index.js // 获取应用实例 const app = getApp() Page({ 
    data: { 
    content_money: '1000万' }, onReady: function () { 
    //获得popup组件 this.popup = this.selectComponent("#popup"); }, showPopup() { 
    this.popup.showPopup(); }, //取消事件 _close() { 
    console.log('你点击了关闭按钮'); this.popup.hidePopup(); }, onLoad() { 
    }, }) 

至此, 就全部结束了, 当点击首页index.wxml上的按钮时, 弹出弹窗组件, 点击弹窗页面下的X按钮, 可以关闭弹窗。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/202247.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月20日 上午7:33
下一篇 2026年3月20日 上午7:33


相关推荐

  • 10分钟)阿里云一键部署openclaw

    10分钟)阿里云一键部署openclaw

    2026年3月13日
    2
  • Ubuntu安装eclipse

    Ubuntu安装eclipseUbuntu 安装 eclipse 运行下面三条命令 tar zvxf eclipse inst jre linux64 tar gzcd eclipse install eclipse inst 选择对应组件安装 这里我选择的是 EclipseIDEfo 大家可以根据自己的需要选择对应的组件 然后默认安装即可 安装完成后 打开软件 如下图所示 大功告成 下面就是学习使用 Eclipse 进行开发了

    2026年3月19日
    2
  • Django(27)Django类视图添加装饰器

    Django(27)Django类视图添加装饰器类视图在写视图的时候,Django除了使用函数作为视图,也可以使用类作为视图。使用类视图可以使用类的一些特性,比如继承等。Viewdjango.views.generic.base.View是主

    2022年7月30日
    7
  • 使用knn算法对鸢尾花数据集进行分类(数据挖掘apriori算法)

    KNN算法实现鸢尾花数据集分类一、knn算法描述1.基本概述knn算法,又叫k-近邻算法。属于一个分类算法,主要思想如下:一个样本在特征空间中的k个最近邻的样本中的大多数都属于某一个类别,则该样本也属于这个类别。其中k表示最近邻居的个数。用二维的图例,说明knn算法,如下:二维空间下数据之间的距离计算:在n维空间两个数据之间:2.具体步骤:(1)计算待测试数据与各训练数据的距…

    2022年4月18日
    228
  • ac测评题库_队长小翼剧场版

    ac测评题库_队长小翼剧场版给定一个 N×M 的棋盘,有一些格子禁止放棋子。问棋盘上最多能放多少个不能互相攻击的骑士(国际象棋的“骑士”,类似于中国象棋的“马”,按照“日”字攻击,但没有中国象棋“别马腿”的规则)。输入格式第一行包含三个整数 N,M,T,其中 T 表示禁止放置的格子的数量。接下来 T 行每行包含两个整数 x 和 y,表示位于第 x 行第 y 列的格子禁止放置,行列数从 1 开始。输出格式输出一个整数表示结果。数据范围1≤N,M≤100输入样例:2 3 0输出样例:4#include<b

    2022年8月9日
    8
  • 史上最详细的kali安装教程[通俗易懂]

    史上最详细的kali安装教程[通俗易懂]一、下载系统镜像文件首先下载系统镜像,进入kali官网,在Downloads中选择DownloadKaliLinux,如下图所示。2.根据电脑配置选择合适的版本,在这里我选择的是64位版本,点击HTTP下载镜像文件,或者torrent下载可使用迅雷。kali版本介绍:第一类是常规的32和64位版本;第二类简化版如:kalilinuxlight;第三类桌面环境如:mate、k…

    2022年6月11日
    82

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号