codecamp

支付宝小程序浮层组件 气泡·Popover

气泡。可通过设置 Popover-item 宽高改变气泡大小,不支持文字自适应宽高。

说明:设置 popover 位于特定元素的正下方,可以把该元素放在 popover 内并且设置 position 为 bottom 。

扫码体验

示例代码

{


  "defaultTitle": "Popover",


  "usingComponents": {


    "popover": "mini-ali-ui/es/popover/index",


    "popover-item": "mini-ali-ui/es/popover/popover-item/index"


  }


}
<view class="demo-popover">


  <popover


    position="{{position}}"


    show="{{show}}"


    showMask="{{showMask}}"


    onMaskClick="onMaskClick"


  >


    <view class="demo-popover-btn" onTap="onShowPopoverTap">点击{{show ? '隐藏' : '显示'}}</view>


    <view slot="items">


      <popover-item onItemClick="itemTap1" iconType="{{showIcon ? 'qr' : ''}}" data-direction="{{position}}">


        <text>{{position}}</text>


      </popover-item>


      <popover-item onItemClick="itemTap2" iconType="{{showIcon ? 'qr' : ''}}" data-index="{{2}}">


        <text>line2</text>


      </popover-item>


    </view>


  </popover>


</view>


<view class="demo-popover-test-btns">


  <button class="demo-popover-test-btn" onTap="onNextPositionTap">下个位置</button>


  <button class="demo-popover-test-btn" onTap="onMaskChangeTap">蒙层{{showMask ? '隐藏' : '显示'}}</button>


  <button class="demo-popover-test-btn" onTap="onIconChangeTap">显示/隐藏图标</button>


</view>
const position = ['top', 'topRight', 'rightTop', 'right', 'rightBottom', 'bottomRight', 'bottom', 'bottomLeft', 'leftBottom', 'left', 'leftTop', 'topLeft'];


Page({


  data: {


    position: position[0],


    show: false,


    showMask: true,


    showIcon: true,


  },


  onShowPopoverTap() {


    this.setData({


      show: !this.data.show,


    });


  },


  onNextPositionTap() {


    let index = position.indexOf(this.data.position);


    index = index >= position.length - 1 ? 0 : index + 1;


    this.setData({


      show: true,


      position: position[index],


    });


  },


  onMaskChangeTap() {


    this.setData({


      showMask: !this.data.showMask,


    });


  },


  onIconChangeTap() {


    this.setData({


      showIcon: !this.data.showIcon,


    });


  },


  onMaskClick() {


    this.setData({


      show: false,


    });


  },


  itemTap1(e) {


    my.alert({


      content: `点击_${e.currentTarget.dataset.direction}`,


    });


  },


  itemTap2(e) {


    my.alert({


      content: `点击_${e.currentTarget.dataset.index}`,


    });


  },


});
.demo-popover {


  display: flex;


  align-items: center;


  justify-content: center;


  width: 100%;


  height: 400px;


}


.demo-popover-btn {


  width: 100px;


  height: 100px;


  line-height: 100px;


  text-align: center;


  background-color: #fff;


  border: 1px solid #dddddd;


  border-radius: 2px;


}


.demo-popover-test-btns {


  display: flex;


  justify-content: space-around;


}


.demo-popover-test-btn {


  width: 45%;


}

属性

属性 类型 默认值 描述 必填 最低版本
className String - 最外层覆盖样式。 -
show Boolean false 气泡是否展示。 -
showMask Boolean true 蒙层是否展示。 -
position String bottomRight 气泡位置。可选值:top、topRight、topLeft、bottom、bottomLeft、bottomRight、right、rightTop、rightBottom、left、leftBottom、leftTop。 -
fixMaskFull Boolean false 用以解决遮罩层受到 transform 影响而显示不全的问题。 - 1.0.11

popover-item

属性 类型 描述 最低版本
className String 单项样式。 -
onItemClick () => void 单项点击事件。 -
iconType String 所有的 type 值均来自 icon 组件。可选值参考 icon 组件。 -
iconURL String 图片的 URL 1.1.2
支付宝小程序扩展组件 折叠面板·Collapse
支付宝小程序浮层组件 筛选·filter
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

支付宝小程序开发文档

支付宝小程序 快速示例

支付宝小程序 小程序快速示例

支付宝小程序 框架

支付宝小程序 组件

支付宝小程序组件 基础组件

支付宝小程序组件 无障碍访问

支付宝小程序 扩展组件

支付宝小程序扩展组件 UI组件

支付宝小程序 API

支付宝小程序 开发工具

支付宝小程序 云服务

支付宝小程序 Serverless

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }