微信小程序-自定義組件

本套組件結合了微信的視覺規范,為用戶提供更加統一的使用感受。
包含: 底部彈出視圖(Dialog)、支付密碼輸入框(PassWordInput)、商品數量加減(Quantity)、提示消息(Toast)、頂部提示(Toptip)、角標(Badge)、星級評分(Rater) 、圖表(Charts)、富文本解析(RichText)共計 9 類組件或元素。
https://github.com/ccmarios/wx_UIModule ,喜歡的朋友記得Star哦~
參考資料:有贊https://github.com/xiaolin3303/wx-chartshttps://github.com/icindy/wxParse

項目運行步驟:
  • git clone https://github.com/ccmarios/wx_UIModule.git
  • 微信開發者工具->編譯

注:本項目基礎庫版本為1.5.4,如運行失敗,請嘗試升級更新【微信開發者工具】。


wx_UIModule.png

底部彈出視圖

Dialog.gif
  • 實現思路

在當前視圖頂部利用z-index添加一層半透明的遮罩層,充當背景。在該背景上添加view,利用transition完成由底部向上滑出的效果。

  • 如何復用到你的項目

所有組件的復用模板都存放在'module'文件夾中,底部彈出視圖的模板名為'Dialog.wxml'。模塊部分代碼如下所示,在需要加入該組件的wxml文件中引入Dialog.wxml,比如:<import src="你的路徑/module/Dialog.wxml" />。代碼中寫入<template is="diaView" data="{{showDialog:showDialog}}" />,記得在.js文件中添加showDialog數據源以及.wxss添加模板所需樣式。

 <template name="diaView">
  <view class="dialog {{ showDialog ? 'dialog_show' : '' }}">
    <view class="dialog_mask" bindtap="onClickdiaView" />
    <view class="dialog_container">

      <!--  //此區域自定義視圖  -->
      <view class="flex_Center" style="height:500rpx;background:white;"> 
        <view style="color:#333;font-size:30rpx;">自定義視圖</view>
      </view>

    </view>
  </view>
</template>

支付密碼輸入框

PassWordInput.gif
  • 實現思路

六個密碼輸入框使用view+border展示,在view上層利用z-index添加一個透明色的input控件用于調起鍵盤輸入,但是input在輸入時會有光標閃爍。我的處理辦法是,將控件left設置為-100rpx,這樣光標出現在屏幕外,視覺上達到了效果。這不是最優的處理方式,有想法的朋友可以交流~

  • 如何復用到你的項目

所有組件的復用模板都存放在'module'文件夾中,底部彈出視圖的模板名為'pwdInput.wxml'。引用方法同上,就不再贅述了,記得添加wxss

<template name="pwdInput">
  <view class="pwdInputStyle">
      <input class="pas_input" type="number" maxlength="6" focus="true" bindinput="onChangeInput" />
      <block wx:for="{{[0,1,2,3,4,5]}}">
        <view class="itemStyle flex_Center">
          <view wx:if="{{passWordArr[item] == true}}" class="PwdStyle"></view>
        </view>
      </block>
    </view>
</template>

商品數量加減

Quantity.gif
  • 實現思路

首先要確定業務需求,右側減號左側加號中間是可以輸入的框。需要注意的是,當商品數量減至1時,左側減號不可點擊。當商品數量增至最大值時,右側加號不可點擊。中間輸入需要留意的是,可能會輸入0或者大于商品數量上限時的處理。我的處理方式是:當輸入0時,數量默認變為1;當輸入數量大于上限時,變為最大值。詳細見代碼

  • 如何復用到你的項目

所有組件的復用模板都存放在'module'文件夾中,底部彈出視圖的模板名為'numberPlusMinus.wxml'。注意加減號點擊方法和input的處理。

<template name="quantity">
  <view class="quantityViewStyle">
    <view class="minusStyle" style="color:{{num==1?'#DADADA':white}}" bindtap="onTapMinus">-</view>
    <view class="inputViewStyle">
      <input class="inputView1Style" style="height:54rpx;" value="{{num}}" type="number" maxlength="2" bindinput="onInputNum" bindblur="lossFocus" />
    </view>
    <view class="plusStyle" style="color:{{num==totalNum?'#DADADA':white}}" bindtap="onTapPlus">+</view>
  </view>
</template>

提示消息

Toast.gif
  • 實現思路

這個就是普通的消息提示,沒多少可說的。O(∩_∩)O哈哈~

  • 如何復用到你的項目

所有組件的復用模板都存放在'module'文件夾中,底部彈出視圖的模板名為'messageView.wxml'。在.js中有個isShowToast的方法,傳入文字即可。

<template name="UI-toast">
  <view class="UI-toast" wx:if="{{ toastShow }}">{{title}}</view>
</template>

頂部提示

Toptip.gif
  • 實現思路

z-index + transition搞定~

  • 如何復用到你的項目

所有組件的復用模板都存放在'module'文件夾中,底部彈出視圖的模板名為'topMessage.wxml'。

<template name="toptips">
  <view class="toptips {{ isTopTips ? 'toptips--show' : '' }}">{{ TopTipscontent }}</view>
</template>

角標

Badge.png
  • 實現思路

利用css樣式即可達到效果,詳見代碼

  • 如何復用到你的項目

所有組件的復用模板都存放在'module'文件夾中,底部彈出視圖的模板名為'badge.wxml'。

<template name="badge">
  <view class="demo__item">
    <view class="demo__icon badge">
        <view wx:if="{{number > 0}}" class="badge__count">{{number > 99 ? '99+' : number}}</view>
    </view>
</view>
</template>

星級評分

Rater.gif
  • 實現思路

五角星和心形圖案在搜狗輸入法找的??,大小改變設置font-size,顏色改變設置color。我用了一個數組存評分數據,點擊了第幾個圖案,數組存幾個true,根據true/false展示不同的顏色。

  • 如何復用到你的項目

好吧,這個沒有模板!因為用了不同的數據源,懶得抽方法了?? 需要的同學,自己寫一下吧~??


結束語

如果你有更好的處理方案,歡迎交流~
希望有更多的同學能加入進來,完善這套組件~
最后,各位大佬覺得不錯的,請Star哦~

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,401評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,011評論 3 413
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,263評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,543評論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,323評論 6 404
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,874評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,968評論 3 439
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,095評論 0 286
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,605評論 1 331
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,551評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,720評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,242評論 5 355
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 43,961評論 3 345
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,358評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,612評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,330評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,690評論 2 370

推薦閱讀更多精彩內容

  • 前言 微信小程序自1月19號發布后,可謂是有人歡喜有人憂啊.曾經對它一度抱有各種期待的前端工作者們在張總的一句句:...
    LinDaiDai_霖呆呆閱讀 6,201評論 6 11
  • 組件化是web、移動開發的大趨勢,一次開發多次使用,調用方便,解耦性好。當然在小程序開發是一個趨勢。 官網:htt...
    共田君閱讀 2,111評論 0 0
  • 注意:目前自定義組件相關特性處于公測階段。如果需要使用相關特性,請確認在項目選項中已勾選“預覽/上傳時使用新特性”...
    YU_YU_閱讀 3,157評論 0 5
  • 步驟 創建自定義組件 在頁面中使用組件 頁面和組件之間的傳值 項目結構及實現后效果 1、 新建自定義compone...
    YanniLi閱讀 3,256評論 0 3
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,579評論 25 707