快速實作一個微信小程式的Button元件

hzc
發布: 2020-06-28 10:22:36
轉載
6666 人瀏覽過

微信小程式存在Button元件

微信小程式原生存在Button元件,而且樣式也不醜,拓展屬性也很多,只要去看文檔,一邊看一邊試,還是很容易建構一個理想的按鈕Button出來。微信小程式Button傳送門。
但某些時候可能也會覺得原生Button元件配置過於複雜,或是不滿足當前需求,那麼就可能需要自訂一個Button元件了。

好的,開始

例如想要這樣的效果。

快速實作一個微信小程式的Button元件有五種不同的顏色

  • 有三種不同的大小

  • 擁有鏤空效果

  • 可以圓角

  • 可以停用

  • 可以設定圖示

#上程式碼

第一步,建立元件

先開啟編輯器,這裡就開啟微信開發者工具吧,然後建立一個元件,像這樣

快速實作一個微信小程式的Button元件

#我這裡用的是Vscode然後用到了less,和easyLess外掛程式自動編譯less為wxss樣式。

第二步,控制結構和樣式

結構中需要注意:

  • #文字應該居中顯示,所以此處可能需要使用flex佈局方便些

  • 需要預留圖示位置,沒有設定時,則不顯示

  • 需要設定背景顏色控制選項

  • 注意結構和樣式對應即可

<button>
  <pm-icon></pm-icon>
  <slot></slot>
</button>
登入後複製
.pm-button {
  border-radius: 0;
  font-weight: normal;
  display: flex;
  flex-flow: row nowrap;
  justify-content: center;
  align-items: center;
  white-space: nowrap;
}
.pm-button:not([size='mini']) {
  width: 0;
}
.pm-button--normal {
  width: 80px !important;
  height: 40px;
  font-size: 16px;
}
.pm-button--normal.pm-button--round {
  border-radius: 40px;
}
.pm-button--small {
  width: 60px !important;
  height: 30px;
  font-size: 14px;
}
.pm-button--small.pm-button--round {
  border-radius: 30px;
}
.pm-button--mini {
  width: 40px !important;
  height: 20px;
  font-size: 12px;
}
.pm-button--mini.pm-button--round {
  border-radius: 20px;
}
.pm-button--primary {
  background-color: #1989fa;
  border: 1px solid #1989fa;
  color: white;
}
.pm-button--primary.pm-button--plain {
  color: #1989fa;
}
.pm-button--success {
  background-color: #07c160;
  border: 1px solid #07c160;
  color: white;
}
.pm-button--success.pm-button--plain {
  color: #07c160;
}
.pm-button--danger {
  background-color: #ee0a24;
  border: 1px solid #ee0a24;
  color: white;
}
.pm-button--danger.pm-button--plain {
  color: #ee0a24;
}
.pm-button--warning {
  background-color: #ff976a;
  border: 1px solid #ff976a;
  color: white;
}
.pm-button--warning.pm-button--plain {
  color: #ff976a;
}
.pm-button--default {
  background-color: #ffffff;
  border: 1px solid #ebedf0;
  color: black;
}
.pm-button--primary:active,
.pm-button--success:active,
.pm-button--danger:active,
.pm-button--warning:active,
.pm-button--default:active {
  opacity: 0.8;
}
.pm-button--default:active {
  background-color: #ebedf0;
}
.pm-button--plain {
  background-color: transparent;
}
.pm-button--plain:active {
  opacity: 1!important;
  background-color: #ebedf0;
}
.pm-button--disabled {
  opacity: 0.6;
}
.pm-button--disabled:active {
  opacity: 0.6 !important;
}
.pm-button--disabled.pm-button--plain:active,
.pm-button--disabled.pm-button--default:active {
  background-color: transparent;
}
登入後複製

第三步,邏輯處理

Component({
  /**
   * 组件的属性列表
   */
  properties: {
    size: {
      type: String,
      value: &#39;normal&#39;
    },
    type: {
      type: String,
      value: &#39;primary&#39;
    },
    plain: Boolean,
    disabled: Boolean,
    round: Boolean,
    cStyle: String,
    icon: String,
    iconColor: String,
    iconSize: String
  },

  /**
   * 组件的方法列表
   */
  methods: {
    clickHandler() {
      !this.data.disabled && this.triggerEvent(&#39;click&#39;, {})
    }
  }
})
登入後複製

推薦教程:《微信小程序

以上是快速實作一個微信小程式的Button元件的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:jianshu.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板