微信小程序按钮组件:button
按钮组件。
| 属性名 | 类型 | 默认值 | 说明 | 最低版本 | 
|---|---|---|---|---|
| size | String | default | 按钮的大小 | |
| type | String | default | 按钮的样式类型 | |
| plain | Boolean | false | 按钮是否镂空,背景色透明 | |
| disabled | Boolean | false | 是否禁用 | |
| loading | Boolean | false | 名称前是否带 loading 图标 | |
| form-type | String | 用于 <form/> 组件,点击分别会触发 submit/reset 事件 | 
||
| open-type | String | 有效值:contact,打开客服会话 | 1.1.0 | |
| hover-class | String | button-hover | 指定按钮按下去的样式类。当 hover-class="none" 时,没有点击态效果 | 
|
| hover-start-time | Number | 20 | 按住后多久出现点击态,单位毫秒 | |
| hover-stay-time | Number | 70 | 手指松开后点击态保留时间,单位毫秒 | 
注:button-hover默认为{background-color:rgba(0,0,0,0.1);opacity:0.7;}
size 有效值:
| 值 | 说明 | 
|---|---|
| default | |
| mini | 
type 有效值:
| 值 | 说明 | 
|---|---|
| primary | |
| default | |
| warn | 
form-type 有效值:
| 值 | 说明 | 
|---|---|
| submit | 提交表单 | 
| reset | 重置表单 | 
open-type 有效值:
| 值 | 说明 | 最低版本 | 
|---|---|---|
| contact | 打开客服会话 | 1.1.0 | 
示例代码:
/** wxss **/
/** 修改button默认的点击态样式类**/
.button-hover {
  background-color: red;
}
/** 添加自定义button点击态样式类**/
.other-button-hover {
  background-color: blue;
}
<button type="default" size="{{defaultSize}}" loading="{{loading}}" plain="{{plain}}"
        disabled="{{disabled}}" bindtap="default" hover-class="other-button-hover"> default </button>
<button type="primary" size="{{primarySize}}" loading="{{loading}}" plain="{{plain}}"
        disabled="{{disabled}}" bindtap="primary"> primary </button>
<button type="warn" size="{{warnSize}}" loading="{{loading}}" plain="{{plain}}"
        disabled="{{disabled}}" bindtap="warn"> warn </button>
<button bindtap="setDisabled">点击设置以上按钮disabled属性</button>
<button bindtap="setPlain">点击设置以上按钮plain属性</button>
<button bindtap="setLoading">点击设置以上按钮loading属性</button>
<button open-type="contact">进入客服会话</button>
var types = ['default', 'primary', 'warn']
var pageObject = {
  data: {
    defaultSize: 'default',
    primarySize: 'default',
    warnSize: 'default',
    disabled: false,
    plain: false,
    loading: false
  },
  setDisabled: function(e) {
    this.setData({
      disabled: !this.data.disabled
    })
  },
  setPlain: function(e) {
    this.setData({
      plain: !this.data.plain
    })
  },
  setLoading: function(e) {
    this.setData({
      loading: !this.data.loading
    })
  }
}
for (var i = 0; i < types.length; ++i) {
  (function(type) {
    pageObject[type] = function(e) {
      var key = type + 'Size'
      var changedData = {}
      changedData[key] =
        this.data[key] === 'default' ? 'mini' : 'default'
      this.setData(changedData)
    }
  })(types[i])
}
Page(pageObject)
