• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

[转]微信小程序之购物数量加减——微信小程序实战商城系列(3) ...

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文转自:http://blog.csdn.net/michael_ouyang/article/details/70194144

我们在购买宝贝的时候,购物的数量,经常是我们需要使用的,如下所示:

在宝贝详情页里:

在购物车里:

 

现在就为大家介绍这个小组件,在小程序中,该如何去写

下图为本项目的图:

 

 

wxml

  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>  
<!-- 主容器 -->
<view class="stepper">
	<!-- 减号 -->
	<text class="{{minusStatus}}" bindtap="bindMinus">-</text>
	<!-- 数值 -->
	<input type="number" bindchange="bindManual" value="{{num}}" />
	<!-- 加号 -->
	<text class="normal" bindtap="bindPlus">+</text>
</view>

wxss

  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. }  
/*全局样式*/
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

[javascript] view plain copy print?
  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. })  
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

 

 

更多小程序的教程

 

 

微信开发者工具的快捷键

微信小程序的文件结构 —— 微信小程序教程系列(1)

微信小程序的生命周期实例演示 —— 微信小程序教程系列(2)

微信小程序的动态修改视图层的数据 —— 微信小程序教程系列(3)

微信小程序的新建页面 —— 微信小程序教程系列(4)

微信小程序的如何使用全局属性 —— 微信小程序教程系列(5)

微信小程序的页面跳转 —— 微信小程序教程系列(6)

微信小程序标题栏和导航栏的设置 —— 微信小程序教程系列(7)

微信小程序的作用域和模块化 —— 微信小程序教程系列(8)

微信小程序视图层的数据绑定 —— 微信小程序教程系列(9)

微信小程序视图层的条件渲染 —— 微信小程序教程系列(10)

微信小程序视图层的列表渲染 —— 微信小程序教程系列(11)

微信小程序视图层的模板 —— 微信小程序教程系列(12)

微信小程序wxss的尺寸单位rpx —— 微信小程序教程系列(13)

微信小程序的网络请求 —— 微信小程序教程系列(14)

微信小程序的百度地图获取地理位置 —— 微信小程序教程系列(15)

微信小程序使用百度api获取天气信息 —— 微信小程序教程系列(16)

微信小程序获取系统日期和时间 —— 微信小程序教程系列(17)

微信小程序之顶部导航栏实例 —— 微信小程序实战系列(1)

微信小程序之上拉加载(分页加载)实例 —— 微信小程序实战系列(2)

微信小程序之轮播图实例 —— 微信小程序实战系列(3)

微信小程序之仿android fragment之可滑动的底部导航栏实例  —— 微信小程序实战系列(4)

 

微信小程序之登录页实例 —— 微信小程序实战系列(5)

微信小程序之自定义toast实例 —— 微信小程序实战系列(6)

微信小程序之自定义抽屉菜单(从下拉出)实例 —— 微信小程序实战系列(7)

微信小程序之自定义模态弹窗(带动画)实例 —— 微信小程序实战系列(8)

微信小程序之侧栏分类 —— 微信小程序实战商城系列(1)

微信小程序之仿淘宝分类入口 —— 微信小程序实战商城系列(2)

 

更多小程序的教程请查看:http://blog.csdn.net/michael_ouyang/article/details/54700871

谢谢观看,不足之处,敬请指导

 

 

        版权声明:本文为博主原创文章,转载务必注明出处,http://blog.csdn.net/michael_ouyang。     
  • 本文已收录于以下专栏:
  •                                       
  • 微信小程序栏目

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
osstatus-9801workermanwebsocket小程序不带端口发布时间:2022-07-18
下一篇:
小程序,计算一个字符串中每个字符出现的次数发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap