wxc-popover

在点击控件或者某个区域后,浮出一个气泡菜单来做更多的操作。 同时设置了遮罩层,通过点击遮罩层的任一位置,进行退出。

规则

  • 常用于拓展气泡按钮组
  • 在指定坐标位置弹出气泡,点击遮罩层进行关闭
  • 支持上、下、左、右四个方向
  • 可自定义气泡和箭头具体位置

Demo

wxc-popover 气泡菜单 - 图1 wxc-popover 气泡菜单 - 图2

使用方法

  1. <template>
  2. <div class="wxc-demo">
  3. <wxc-minibar @wxcMinibarRightButtonClicked="minibarRightButtonClick"
  4. right-text="..."></wxc-minibar>
  5. <wxc-popover ref="wxc-popover"
  6. :buttons="btns"
  7. :position="popoverPosition"
  8. :arrowPosition="popoverArrowPosition"
  9. @wxcPopoverButtonClicked="popoverButtonClicked"></wxc-popover>
  10. </div>
  11. </template>
  12. <script>
  13. import { WxcMinibar, WxcPopover} from 'weex-ui';
  14. const modal = weex.requireModule('modal');
  15. // https://github.com/alibaba/weex-ui/blob/master/example/popover/type.js
  16. import { RETURN_ICON, SCAN_ICON, QRCODE_ICON, QUESTION_ICON } from './type';
  17. export default {
  18. components: { WxcMinibar, WxcPopover },
  19. data: () => ({
  20. leftButton: RETURN_ICON,
  21. btns:[
  22. {
  23. icon: SCAN_ICON,
  24. text:'Scan',
  25. key:'key-scan'
  26. },
  27. {
  28. icon: QRCODE_ICON,
  29. text:'My Qrcode',
  30. key:'key-qrcode'
  31. },
  32. {
  33. icon: QUESTION_ICON,
  34. text:'Help',
  35. key:'key-help'
  36. },
  37. ],
  38. popoverPosition:{x:-14,y:380},
  39. popoverArrowPosition:{pos:'top',x:-15}
  40. }),
  41. methods: {
  42. minibarRightButtonClick () {
  43. this.$refs['wxc-popover'].wxcPopoverShow();
  44. },
  45. popoverButtonClicked (obj) {
  46. modal.toast({ 'message': `key:${obj.key}, index:${obj.index}`, 'duration': 1 });
  47. }
  48. }
  49. };
  50. </script>

更详细代码可以参考 demo

可配置参数

Prop Type Required Default Description
buttons Array Y [] 气泡按钮数据列表,如 [{icon: 'http://cdn.zwwill.com/weexui/icon/scan.png',text:'Help',key:'key-help'}]
position Object Y {x:0,y:0} 气泡位置,x>0 为左边距,x<0 为右边距,y同理
arrowPosition Object Y {pos:'top',x:0,y:0} 气泡箭头位置,pos 为'top,bottom,left,right',配合x,y定位箭头位置
coverColor String N rgba(0,0,0,0.4) 遮罩层颜色,如 rgba(0,0,0,0.4)rgb(0,0,0)#000
hasAnimation Boolean N true 是否开启展开动画
textStyle Object N {} 文字样式覆盖

调用显示

  1. wxc-popover上面绑定ref,然后调用this.$refs['wxc-popover'].hide();即可显示

事件回调

  1. // `@wxcPopoverButtonClicked` 返回一个对象,标志点击按钮的 `key` 和 `index`

Please feel free to use and contribute to the development.

原文: https://alibaba.github.io/weex-ui/#/cn/packages/wxc-popover/