1.0.0 • Published 3 years ago

mina-popups v1.0.0

Weekly downloads
49
License
ISC
Repository
github
Last release
3 years ago

mina-popups

mina-popups,一个方便、轻量的 小程序 弹出组件集合

change log:

  1. 2021.02.22 init package

层叠顺序规范

mask: 100
popups: 200

所以 page 下一层的业务样式层叠顺序层级应 < 100

主要的组件

popup

  • 组件整合 popup 的通用逻辑:弹出位置,背景 mask,函数式控制显隐
  • 并对 fixed 模式升级,不仅支持直接传入 left、top 控制 popup 位置,还支持传入 selector 自动设置 popup 位置
lefttoprightbottomcenter
fixed selectorfixed left&top

popover

  • popup 的基础上,完善气泡菜单的通用逻辑
  • 使用者只需要在 slot 里添加提示或者菜单内容即可
  • popover 会根据触发位置自动改变展示方向
气泡菜单tooltip

menu-popover

  • popover 的基础上,针对小程序引导添加我的小程序的场景,自动将 popover 定位到小程序胶囊下方
  • 组件自动识别页面 navigationStyle: custom 属性,优化展示位,使用者无需关心适配问题 |  |  | | --------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | | 胶囊气泡 | |

使用方法

大致可以分为 2 步:

  1. npm 安装 mina-popups,开发工具构建 npm
  2. 引入并使用 mina-popups 组件

命令行

npm install mina-popups
安装完成后,开发工具构建 npm

*.json

{
  "usingComponents": {
    "popup": "mina-popups/popup",
    "popover": "mina-popups/popover",
    "menu-popover": "mina-popups/menu-popover"
  }
}

*.wxml

在 view 上利用 popups 处理渲染逻辑

<popup
  show="{{popup.show}}"
  position="{{popup.position}}"
  mask="{{popup.mask}}"
  catchScroll="{{popup.catchScroll}}"
  tapMaskClose="{{popup.tapMaskClose}}"
  scrollMaskClose="{{popup.scrollMaskClose}}"
  maskColor="{{popup.maskColor}}"
  selector="{{popup.selector}}"
  left="{{popup.left}}"
  top="{{popup.top}}"
  unit="{{popup.unit}}"
  bind:position="position"
>
  <!-- popup-inner-wxml -->
</popup>

<popover
  show="{{popover.show}}"
  mask="{{popover.mask}}"
  catchScroll="{{popover.catchScroll}}"
  tapMaskClose="{{popover.tapMaskClose}}"
  scrollMaskClose="{{popover.scrollMaskClose}}"
  maskColor="{{popover.maskColor}}"
  left="{{popover.left}}"
  top="{{popover.top}}"
  unit="{{popover.unit}}"
  translateX="{{popover.translateX}}"
>
  <!-- popover-inner-wxml -->
</popover>

<menu-popover show="{{show}}">
  <!-- menu-popover-inner-wxml -->
</menu-popover>
属性类型默认值描述
showBooleanfalse是否显示 popup
positionEnumfixedpopup 的定位模式:fixed,center,left,right,top,bottom
maskBooleantrue是否显示 mask
catchScrollBooleantrue滑动 mask 是联动 page 滑动,先决条件是 mask=true
tapMaskCloseBooleantrue点击 mask 是否关闭 popup,先决条件是 mask=true
scrollMaskCloseBooleanfalse滑动 mask 是否关闭 popup,先决条件是 mask=true
maskColorString'rgba(0, 0, 0, 0.6)'mask 的颜色
selectorString''position=fixed 时,使用 selector 来设置 popup 打开位置,默认为结点中心位置,具体数据会在 position 回调中返回
leftNumber0position=fixed 时,直接使用 left+top 来控制 popup 的打开位置,先决条件是 selector=''
topNumber0position=fixed 时,直接使用 left+top 来控制 popup 的打开位置,先决条件是 selector=''
unitString'px'position=fixed 时,控制 left、top 的单位,默认 px,注意 selector 模式会自动更新 unit 为 px

注意事项

  1. popups 对于层叠顺序的设计为:mask-100,popup-200,所以为了保证 popups 在页面不被遮挡,Page 下一层的业务样式层叠顺序不要超过 100。