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

小程序弹框的一些总结

小程序弹框的一些总结

弹框的一些基本布局

  1. 基本布局
<view class="panel-mask">
	<view class="panel-content">内容区域</view>
</view>
  1. 样式
    fixed布局:(撑满整个背景)
.panel-mask {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background: rgba(0, 0, 0, 50%);
  }

absolute布局: (设置内容的样式, 重点是设置 height 所占百分比)

.panel-content {
	position: absolute;
    bottom: 0;
    left: 0;
    z-index: 11;
    width: 100%;
    height: 89%;
    padding: 0 30rpx;
    background: #fff;
    box-sizing: border-box;
}

不同机型,内容过多,如何合理的设置滚动区间

此处是个技术点:

  1. 最外层盒子, 设置 百分比高度。这样就不用考虑机型了 (上面代码有)
  2. 滚动的区域动态设置高度
    show: {
    		type: Boolean,
    		value: false,
    		observer(val) {
    			if (val) {
    				const query = this.createSelectorQuery();
    				query.select('.panel-content').boundingClientRect();
    				query.select('.panel-header').boundingClientRect();
    				query.select('.m-button-wrap').boundingClientRect();
    				query.exec((res) => {
    					this.setData({
    						datailHeight: res[0].height - res[1].height - res[2].height,
    					});
    				});
    			}
    		},
    	},
    
<view style="height: {{datailHeight}}px; overflow-y: scroll">内容区域</view>

底部按钮的设置

flex 和 fixed 结合

position: fixed;
	bottom: 0;
	display: flex;
	width: 100%;
	height: 108rpx;
	padding-bottom: env(safe-area-inset-bottom);
	font-size: 30rpx;
	font-weight: 500;
	color: #fff;
	background-color: #fff;
	border-radius: 39rpx;
	align-items: center;
	justify-content: center;

正常页面,底部固定按钮,对于不同机型该怎么设置内容区域距离底部的距离

设置一个空标签的高度占位,然后动态设置安全距离

<view class="ipx-inner-padding" />

.ipx-inner-padding {
	height: 152rpx;
	padding-bottom: env(safe-area-inset-bottom);
	box-sizing: border-box;
}

http://www.kler.cn/a/13500.html

相关文章:

  • 总结827
  • Mysql中的三种log原理
  • 句子改写神器-文案自动改写的免费软件
  • SLAM论文速递【SLAM—— PLD-SLAM:一种基于点线特征的室内动态场景RGB-D SLAM新方法—4.23(1)
  • 如何提高代码能力:程序员的成长之路(下)
  • C/C++每日一练(20230423)
  • 不得不说的结构型模式-桥接模式
  • Redis源码分析(基于Redis7,对比Redis6)
  • 精读《利用 GPT 解读 PDF》
  • Doris(7):数据导入(Load)之Routine Load
  • 宜搭应用与第三方系统数据互通怎么做?
  • 在win10系统中安装anaconda
  • C++并发数据结构设计
  • JumpConsistentHash,一种快速、简单、内存占用最少的一致性hash算法
  • 如何优化语音交友app开发的搜索和匹配算法
  • mySQL1(4/17)
  • Unity之ShaderGraph入门
  • 手把手教你通过 Docker 部署前后端分离项目(亲测可用)
  • linux_信号概念、事件、状态、常见信号解释、信号屏蔽字、未决信号集
  • leetcode507. 完美数