uni-app实现单选、多选改变样式

单选

	<!-- 单选 -->
	<view class="company-item" :class="{'active': isChange == index}"  v-for="(item, index) in list" :key="index" @click="clickBtn(index)">
		{{item}}
	</view>
	isChange:'-1', //单选
	list: [],   //接口获取到的数组

	// 判断 当前index 是否与 ischange 相等,不相等择改变背景为红色(代表选中),再次点击取消
	clickBtn(index){
		// 单选
		if(index!=this.isChange){
			this.isChange = index;
		}else{
			// this.isChange = -1;    //不注释则可以点击取消,注释之后点击就不再取消
		}
	},

多选

	<!-- 多选 -->
	<view class="skill-item" :class="{'active': isChange.indexOf(index)!=-1}"  v-for="(item, index) in list" :key="index" @click="clickBtn(index)"> 
		{{item}}
	</view>
	isChange:[],  //多选
	list: [],  //接口获取到的数组

	clickBtn(index){
		// 多选
		if (this.isChange.indexOf(index) == -1) {
			if(this.isChange.length == 3){
				uni.showToast({
					title:'最多选择三项',
					icon:'none'
				})
			}else{
				this.isChange.push(index);//选中添加到数组里
			}
		} else {
			this.isChange.splice(this.isChange.indexOf(index), 1); //取消选中
		}
		let list2 =  []
		for(let index in this.isChange){
			list2.push(this.list[this.isChange[index]])
		}
	},
样式
.company-item{
	width:200rpx;
	height:50rpx;
	border:2rpx solid #555;
	border-radius:10rpx;
	font-size:30rpx;
	color:#555;
	text-align: center;
	line-height: 50rpx;
}
.active{
	border:2rpx solid #DD524D;
	color: #DD524D;
}
  • 6
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
uni-app中,可以使用uview组件库中的u-checkbox-group组件实现下拉多功能,具体实现步骤如下: 1. 在页面中引入u-checkbox-group组件 ```html <template> <view> <u-checkbox-group v-model="selectedValues" :options="options" @change="onChange"></u-checkbox-group> </view> </template> <script> import {uCheckboxGroup} from 'uview-ui'; export default { components: {uCheckboxGroup}, data() { return { options: [ {label: '项1', value: 'value1'}, {label: '项2', value: 'value2'}, {label: '项3', value: 'value3'}, {label: '项4', value: 'value4'}, ], selectedValues: [], // 用来存放择的值 }; }, methods: { onChange(e) { // 当中的值发生变化时触发 console.log('择的值:', e.detail); }, }, }; </script> ``` 2. 在data中定义项列表和择的值 ```javascript data() { return { options: [ {label: '项1', value: 'value1'}, {label: '项2', value: 'value2'}, {label: '项3', value: 'value3'}, {label: '项4', value: 'value4'}, ], selectedValues: [], // 用来存放择的值 }; }, ``` 3. 在模板中使用u-checkbox-group组件,并绑定options和selectedValues属性 ```html <u-checkbox-group v-model="selectedValues" :options="options" @change="onChange"></u-checkbox-group> ``` 4. 在methods中定义onChange方法,当中的值发生变化时触发 ```javascript methods: { onChange(e) { console.log('择的值:', e.detail); }, }, ``` 这样,就完成了在uni-app实现下拉多的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值