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

微信小程序页面容器弹出层

效果图

请添加图片描述

.JS

Page({data: {show: false,duration: 300,position: 'right',round: false,overlay: true,customStyle: '',overlayStyle: ''},popup(e) {const position = e.currentTarget.dataset.positionlet customStyle = ''let duration = this.data.durationswitch(position) {case 'top':case 'bottom': customStyle = 'height: 30%;'breakcase 'right':break}this.setData({position,show: true,customStyle,duration})},changeRound() {this.setData({round: !this.data.round})},changeOverlay() {this.setData({overlay: !this.data.overlay, show: true})},changeOverlayStyle(e) {let overlayStyle = ''const type = e.currentTarget.dataset.typeswitch(type) {case 'black':overlayStyle = 'background-color: rgba(0, 0, 0, 0.7)'breakcase 'white':overlayStyle = 'background-color: rgba(255, 255, 255, 0.7)'breakcase 'blur':overlayStyle = 'background-color: rgba(0, 0, 0, 0.7); filter: blur(4px);'}this.setData({overlayStyle, show: true})},exit() {this.setData({show: false})},
})

.WXML


<view class="title">弹出位置</view>
<view class="box"><button class="btn" bindtap="popup" data-position="right">右侧弹出</button><button class="btn" bindtap="popup" data-position="top">顶部弹出</button><button class="btn" bindtap="popup" data-position="bottom">底部弹出</button><button class="btn" bindtap="popup" data-position="center">中央弹出</button>
</view><view class="title">弹窗圆角</view>
<view class="box"><button class="btn" bindtap="changeRound">设置{{round ? '直角' : '圆角'}}</button>
</view><view class="title">遮罩层</view>
<view class="box"><button class="btn" bindtap="changeOverlay">设置{{overlay ? '无' : '有'}}遮罩</button><button class="btn" bindtap="changeOverlayStyle" data-type="black">黑色半透明遮罩</button><button class="btn" bindtap="changeOverlayStyle" data-type="white">白色半透明遮罩</button><button class="btn" bindtap="changeOverlayStyle" data-type="blur">模糊遮罩</button></view><page-container show="{{show}}"round="{{round}}"overlay="{{overlay}}"duration="{{duration}}"position="{{position}}"close-on-slide-down="{{false}}"bindbeforeenter="onBeforeEnter"bindenter="onEnter"bindafterenter="onAfterEnter"bindbeforeleave="onBeforeLeave"bindleave="onLeave"bindafterleave="onAfterLeave"bindclickoverlay="onClickOverlay"custom-style="{{customStyle}}"overlay-style="{{overlayStyle}}"
><view class="detail-page"><button type="primary" bindtap="exit">推出</button></view>
</page-container>

.WXSS

page {background-color: #f7f8fa;color: #323232;width: 100%;height: 100%;
}.box {margin: 0 12px;
}.title {margin: 0;padding: 32px 16px 16px;color: rgba(69, 90, 100, 0.6);font-weight: normal;font-size: 18px;line-height: 20px;text-align: center;
}.btn {display: block;width: 100%;margin: 10px 0;background-color: #fff;
}.detail-page {width: 100%;height: 100%;min-height: 300px;display: flex;align-items: center;justify-content: center;
}

官方文档

https://developers.weixin.qq.com/miniprogram/dev/component/page-container.html

遇到问题可以看我主页加我Q,很少看博客,对你有帮助别忘记点赞收藏。

相关文章:

  • Next.js面试题:API深度解析
  • LangChain 与 Milvus 的碰撞:全文检索技术实践
  • java 设计模式_行为型_23状态模式
  • 论文笔记:CAN LLMS UNDERSTAND TIME SERIES ANOMALIES?
  • Kafka Connect实战:从环境搭建到全流程操作
  • solana 编写智能合约 然后调用它
  • C#/.NET/.NET Core技术前沿周刊 | 第 42 期(2025年6.9-6.15)
  • Debian 编译安装 ruby3.2
  • webpack到vite的改造之路
  • SOME/IP学习随笔
  • Trae - 非科班在建模比赛中的 AI 编程手|AI编程社知识库精选
  • vscode snippet 工程模板文件分享
  • 【SSH】在VScode中配置SSH
  • 一次硬件恢复之后数据文件0kb的故障恢复---惜分飞
  • 本地生活是如何进行抽佣的
  • 19|Whisper+ChatGPT:请AI代你听播客
  • Flask 快速精通:从入门到实战的轻量级 Web 框架指南
  • git submodule 和git repo介绍
  • 告别微服务,迎接SCS(Self-Contained Systems)?新概念还是炒冷饭?
  • 算法 学习 排序 2025年6月16日10:25:37
  • dedecms做企业网站/免费合作推广
  • 响应式企业网站制作公司/百度搜索风云榜排行榜
  • 网站banner图片制作/深圳网络推广公司有哪些
  • 网站设计公司 广州/seo优化点击软件
  • 北京欢迎你网站制作公司/北京百度推广seo
  • 昆明高端网站建设公司/百度高级搜索页面的网址