小程序購物車 數量加減功能


我們在購買寶貝的時候,購物的數量,經常是我們需要使用的,如下所示:

在寶貝詳情頁里:

在購物車里:

 

現在就為大家介紹這個小組件,在小程序中,該如何去寫

下圖為本項目的圖:

 

 

wxml:

[html]  view plain  copy
 
  1. <!-- 主容器 -->  
  2. <view class="stepper">  
  3.     <!-- 減號 -->  
  4.     <text class="{{minusStatus}}" bindtap="bindMinus">-</text>  
  5.     <!-- 數值 -->  
  6.     <input type="number" bindchange="bindManual" value="{{num}}" />  
  7.     <!-- 加號 -->  
  8.     <text class="normal" bindtap="bindPlus">+</text>  
  9. </view>  

 

wxss:

 

[css]  view plain  copy
 
  1. /*全局樣式*/  
  2. page {  
  3.     padding: 20px 0;  
  4. }  
  5.   
  6. /*主容器*/  
  7. .stepper {  
  8.     width: 80px;  
  9.     height: 26px;  
  10.     /*給主容器設一個邊框*/  
  11.     border: 1px solid #ccc;  
  12.     border-radius: 3px;  
  13.     margin:auto;  
  14. }  
  15.   
  16. /*加號和減號*/  
  17. .stepper text {  
  18.     width: 19px;  
  19.     line-height: 26px;  
  20.     text-align: center;  
  21.     float: left;  
  22. }  
  23.   
  24. /*數值*/  
  25. .stepper input {  
  26.     width: 40px;  
  27.     height: 26px;  
  28.     float: left;  
  29.     margin: auto;  
  30.     text-align: center;  
  31.     font-size: 12px;  
  32.     /*給中間的input設置左右邊框即可*/  
  33.     border-left: 1px solid #ccc;  
  34.     border-right: 1px solid #ccc;  
  35. }  
  36.   
  37. /*普通樣式*/  
  38. .stepper .normal{  
  39.     color: black;  
  40. }  
  41.   
  42. /*禁用樣式*/  
  43. .stepper .disabled{  
  44.     color: #ccc;  
  45. }  

 

 

js

[javascript]  view plain  copy
 
  1. Page({  
  2.     data: {  
  3.         // input默認是1  
  4.         num: 1,  
  5.         // 使用data數據對象設置樣式名  
  6.         minusStatus: 'disabled'  
  7.     },  
  8.     /* 點擊減號 */  
  9.     bindMinus: function() {  
  10.         var num = this.data.num;  
  11.         // 如果大於1時,才可以減  
  12.         if (num > 1) {  
  13.             num --;  
  14.         }  
  15.         // 只有大於一件的時候,才能normal狀態,否則disable狀態  
  16.         var minusStatus = num <= 1 ? 'disabled' : 'normal';  
  17.         // 將數值與狀態寫回  
  18.         this.setData({  
  19.             num: num,  
  20.             minusStatus: minusStatus  
  21.         });  
  22.     },  
  23.     /* 點擊加號 */  
  24.     bindPlus: function() {  
  25.         var num = this.data.num;  
  26.         // 不作過多考慮自增1  
  27.         num ++;  
  28.         // 只有大於一件的時候,才能normal狀態,否則disable狀態  
  29.         var minusStatus = num < 1 ? 'disabled' : 'normal';  
  30.         // 將數值與狀態寫回  
  31.         this.setData({  
  32.             num: num,  
  33.             minusStatus: minusStatus  
  34.         });  
  35.     },  
  36.     /* 輸入框事件 */  
  37.     bindManual: function(e) {  
  38.         var num = e.detail.value;  
  39.         // 將數值與狀態寫回  
  40.         this.setData({  
  41.             num: num  
  42.         });  
  43.     }  
  44. })  


運行結果:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM