• 技术文章 >微信小程序 >微信开发

    快速实现一个微信小程序的Button组件

    hzchzc2020-06-28 10:22:36转载1418

    微信小程序存在Button组件

    微信小程序原生存在Button组件,而且样式也不丑,拓展属性也很多,只要去看文档,一边看一边试,还是很容易构造一个理想的按钮Button出来。微信小程序Button传送门。
    但是某些时候可能也会觉得原生Button组件配置过于复杂,或者并不满足当前需求,那么就可能需要自定义一个Button组件了。

    好的,开始

    比如想要这样的效果。

    69f9ea045d2d5aca1ad6bb6621d7859.png拥有五种不同的颜色

    上代码

    第一步,创建组件

    首先打开编辑器,这里就打开微信开发者工具吧,然后创建一个组件,像这样

    f29b31072b38ba330d7bb37ae0b282c.png

    我这里用的是Vscode然后用到了less,和easyLess插件自动编译less为wxss样式。

    第二步,控制结构和样式

    结构中需要注意:

    <button
      class="pm-button pm-button--{{size}} pm-button--{{type}} {{plain?'pm-button--plain':''}} {{round?'pm-button--round':''}} {{disabled?'pm-button--disabled':''}}"
      style="{{cStyle}}"
      bindtap="clickHandler"
    >
      <pm-icon icon="{{icon}}" color="{{iconColor}}" size="{{iconSize}}" wx:if="{{icon}}"></pm-icon>
      <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: 'normal'
        },
        type: {
          type: String,
          value: 'primary'
        },
        plain: Boolean,
        disabled: Boolean,
        round: Boolean,
        cStyle: String,
        icon: String,
        iconColor: String,
        iconSize: String
      },
    
      /**
       * 组件的方法列表
       */
      methods: {
        clickHandler() {
          !this.data.disabled && this.triggerEvent('click', {})
        }
      }
    })

    推荐教程:《微信小程序

    以上就是快速实现一个微信小程序的Button组件的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:简书,如有侵犯,请联系admin@php.cn删除
    专题推荐:微信小程序
    上一篇:微信小程序必知必会面试题 下一篇:微信公众号文章删除不了怎么办?
    大前端线上培训班

    相关文章推荐

    • 微信小程序常见的开发问题汇总• 微信小程序自动跳出来怎么解决?• 微信小程序看不了广告怎么办?• 用mpvue开发微信小程序基础知识

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网