本文轉自:http://blog.csdn.net/michael_ouyang/article/details/70194144
我們在購買寶貝的時候,購物的數量,經常是我們需要使用的,如下所示:
在寶貝詳情頁里:
在購物車里:
現在就為大家介紹這個小組件,在小程序中,該如何去寫
下圖為本項目的圖:
wxml:
- <!-- 主容器 -->
- <view class="stepper">
- <!-- 減號 -->
- <text class="{{minusStatus}}" bindtap="bindMinus">-</text>
- <!-- 數值 -->
- <input type="number" bindchange="bindManual" value="{{num}}" />
- <!-- 加號 -->
- <text class="normal" bindtap="bindPlus">+</text>
- </view>
<!-- 主容器 --> <view class="stepper"> <!-- 減號 --> <text class="{{minusStatus}}" bindtap="bindMinus">-</text> <!-- 數值 --> <input type="number" bindchange="bindManual" value="{{num}}" /> <!-- 加號 --> <text class="normal" bindtap="bindPlus">+</text> </view>
wxss:
- /*全局樣式*/
- page {
- padding: 20px 0;
- }
- /*主容器*/
- .stepper {
- width: 80px;
- height: 26px;
- /*給主容器設一個邊框*/
- border: 1px solid #ccc;
- border-radius: 3px;
- margin:0 auto;
- }
- /*加號和減號*/
- .stepper text {
- width: 19px;
- line-height: 26px;
- text-align: center;
- float: left;
- }
- /*數值*/
- .stepper input {
- width: 40px;
- height: 26px;
- float: left;
- margin: 0 auto;
- text-align: center;
- font-size: 12px;
- /*給中間的input設置左右邊框即可*/
- border-left: 1px solid #ccc;
- border-right: 1px solid #ccc;
- }
- /*普通樣式*/
- .stepper .normal{
- color: black;
- }
- /*禁用樣式*/
- .stepper .disabled{
- color: #ccc;
- }
/*全局樣式*/ page { padding: 20px 0; } /*主容器*/ .stepper { width: 80px; height: 26px; /*給主容器設一個邊框*/ border: 1px solid #ccc; border-radius: 3px; margin:0 auto; } /*加號和減號*/ .stepper text { width: 19px; line-height: 26px; text-align: center; float: left; } /*數值*/ .stepper input { width: 40px; height: 26px; float: left; margin: 0 auto; text-align: center; font-size: 12px; /*給中間的input設置左右邊框即可*/ border-left: 1px solid #ccc; border-right: 1px solid #ccc; } /*普通樣式*/ .stepper .normal{ color: black; } /*禁用樣式*/ .stepper .disabled{ color: #ccc; }
js:
- Page({
- data: {
- // input默認是1
- num: 1,
- // 使用data數據對象設置樣式名
- minusStatus: 'disabled'
- },
- /* 點擊減號 */
- bindMinus: function() {
- var num = this.data.num;
- // 如果大於1時,才可以減
- if (num > 1) {
- num --;
- }
- // 只有大於一件的時候,才能normal狀態,否則disable狀態
- var minusStatus = num <= 1 ? 'disabled' : 'normal';
- // 將數值與狀態寫回
- this.setData({
- num: num,
- minusStatus: minusStatus
- });
- },
- /* 點擊加號 */
- bindPlus: function() {
- var num = this.data.num;
- // 不作過多考慮自增1
- num ++;
- // 只有大於一件的時候,才能normal狀態,否則disable狀態
- var minusStatus = num < 1 ? 'disabled' : 'normal';
- // 將數值與狀態寫回
- this.setData({
- num: num,
- minusStatus: minusStatus
- });
- },
- /* 輸入框事件 */
- bindManual: function(e) {
- var num = e.detail.value;
- // 將數值與狀態寫回
- this.setData({
- num: num
- });
- }
- })
Page({ data: { // input默認是1 num: 1, // 使用data數據對象設置樣式名 minusStatus: 'disabled' }, /* 點擊減號 */ bindMinus: function() { var num = this.data.num; // 如果大於1時,才可以減 if (num > 1) { num --; } // 只有大於一件的時候,才能normal狀態,否則disable狀態 var minusStatus = num <= 1 ? 'disabled' : 'normal'; // 將數值與狀態寫回 this.setData({ num: num, minusStatus: minusStatus }); }, /* 點擊加號 */ bindPlus: function() { var num = this.data.num; // 不作過多考慮自增1 num ++; // 只有大於一件的時候,才能normal狀態,否則disable狀態 var minusStatus = num < 1 ? 'disabled' : 'normal'; // 將數值與狀態寫回 this.setData({ num: num, minusStatus: minusStatus }); }, /* 輸入框事件 */ bindManual: function(e) { var num = e.detail.value; // 將數值與狀態寫回 this.setData({ num: num }); } })
運行結果:
demo下載地址:http://download.csdn.net/detail/michael_ouyang/9815524
更多小程序的教程
微信小程序的生命周期實例演示 —— 微信小程序教程系列(2)
微信小程序的動態修改視圖層的數據 —— 微信小程序教程系列(3)
微信小程序的如何使用全局屬性 —— 微信小程序教程系列(5)
微信小程序標題欄和導航欄的設置 —— 微信小程序教程系列(7)
微信小程序視圖層的條件渲染 —— 微信小程序教程系列(10)
微信小程序視圖層的列表渲染 —— 微信小程序教程系列(11)
微信小程序wxss的尺寸單位rpx —— 微信小程序教程系列(13)
微信小程序的百度地圖獲取地理位置 —— 微信小程序教程系列(15)
微信小程序使用百度api獲取天氣信息 —— 微信小程序教程系列(16)
微信小程序獲取系統日期和時間 —— 微信小程序教程系列(17)
微信小程序之上拉加載(分頁加載)實例 —— 微信小程序實戰系列(2)
微信小程序之仿android fragment之可滑動的底部導航欄實例 —— 微信小程序實戰系列(4)
微信小程序之自定義toast實例 —— 微信小程序實戰系列(6)
微信小程序之自定義抽屜菜單(從下拉出)實例 —— 微信小程序實戰系列(7)
微信小程序之自定義模態彈窗(帶動畫)實例 —— 微信小程序實戰系列(8)
微信小程序之仿淘寶分類入口 —— 微信小程序實戰商城系列(2)
更多小程序的教程請查看:http://blog.csdn.net/michael_ouyang/article/details/54700871
謝謝觀看,不足之處,敬請指導
- 本文已收錄於以下專欄:
- 微信小程序欄目