最近为公司写的小程序中用到了模态页面,于是自己写了一个模态页的组件,详见我的开源项目-微信小程序模态窗口组件
组件设计思路
由于微信小程序中会使用到canvas,map等组件为实现模态窗口的通用适配性,采用cover-view与cover-image 来开发组件
遇到的问题
在设计中遇到了一些样式相关问题参阅开发文档有如下提醒
- tip: 和的aria-role仅可设置为button,读屏模式下才可以点击,并朗读出“按钮”;为空时可以聚焦,但不可点击
- tip: 基础库 2.2.4 起支持 touch 相关事件,也可使用 hover-class 设置点击态
- tip: 基础库 2.1.0 起支持设置 scale rotate 的 css 样式,包括 transition 动画
- tip: 基础库 1.9.90 起 cover-view 支持 overflow: scroll,但不支持动态更新 overflow
- tip: 基础库 1.9.90 起最外层 cover-view 支持 position: fixed
- tip: 基础库 1.9.0 起支持插在 view 等标签下。在此之前只可嵌套在原生组件map、video、canvas、camera内,避免嵌套在其他组件内。
- tip: 基础库 1.6.0 起支持css transition动画,transition-property只支持transform (translateX, translateY)与opacity。
- tip: 基础库 1.6.0 起支持css opacity。
- tip: 事件模型遵循冒泡模型,但不会冒泡到原生组件。
- tip: 文本建议都套上cover-view标签,避免排版错误。
- tip: 只支持基本的定位、布局、文本样式。不支持设置单边的border、background-image、shadow、overflow: visible等。
- tip: 建议子节点不要溢出父节点
- tip: 默认设置的样式有:white-space: nowrap; line-height: 1.2; display: block;
bug: 自定义组件嵌套 cover-view 时,自定义组件的 slot 及其父节点暂不支持通过 wx:if 控制显隐,否则会导致 cover-view 不显示
补充
1.另外在程序中使用canvas与cover-view一同使用时发现,即使设计使用了样式 {z-index:} 的不同层级,后边渲染而出的canvas还是会在cover-view上边显示。即cover-view不能覆盖在canvas上。
自己分析,出现这个问题在于微信的渲染机制问题,类原生组件在渲染的过程中,先后完成的顺序即决定了各自的层级,即使设置了 {z-index:} 该组件并不能做出相应的动作。
2.cover-view ,cover-image 组件推荐不要内置于map等原生组件中,因为会出现没有响应的bug
1.本站所有文章除特殊声明外均为原创,未经允许禁止转载!
2.站内文章如有侵权异议,请与我联系,我将在确实后处理!