uniapp-vue3 实现, 一款带有丝滑动画效果的单选框组件,支持微信小程序、H5等多端

采用 uniapp-vue3 实现, 是一款带有丝滑动画效果的单选框组件,提供点状、条状的动画过渡效果,支持多项自定义配置,适配 web、H5、微信小程序(其他平台小程序未测试过,可自行尝试)

可到插件市场下载尝试: https://ext.dcloud.net.cn/plugin?id=21740

  • 使用示例




  • 示例代码
javascript 复制代码
<template>
	<view>
		<view class="light" style="background-color: white">
			<view>
				<view class="flex-center">默认样式</view>
				<wo-radio-hopping></wo-radio-hopping>
			</view>
		</view>
		<view class="light" style="background-color: white">
			<view class="flex-center">数据集、默认选中、选中事件</view>
			<wo-radio-hopping v-model:options="state.items" v-model:defaultValue="state.default" @on-change="changeEvent"></wo-radio-hopping>
		</view>
		<view class="light" style="background-color: white">
			<view>
				<view class="flex-center">条状动画</view>
				<wo-radio-hopping :lineAnimation="true"></wo-radio-hopping>
			</view>
		</view>
		<view class="light" style="background-color: white">
			<view>
				<view class="flex-center">主题色</view>
				<wo-radio-hopping :primary="'#55bc8a'"></wo-radio-hopping>
			</view>
		</view>
		<view class="light" style="background-color: white">
			<view>
				<view class="flex-center">方框</view>
				<wo-radio-hopping :circle="false"></wo-radio-hopping>
			</view>
		</view>
		<view class="light" style="background-color: white">
			<view>
				<view class="flex-center">选择框样式(通过css的box-shadow属性去设置)</view>
				<wo-radio-hopping :frameBoxShadow="''"></wo-radio-hopping>
				<wo-radio-hopping :frameBoxShadow="'0 1px 1px rgba(0, 0, 0, 0.2), 0 2px 1px rgba(0, 0, 0, 0.2) inset'"></wo-radio-hopping>
			</view>
		</view>
		<view class="light" style="background-color: white">
			<view style="padding: 0 20px;">
				<view class="flex-center">插槽自定义内容</view>
				<wo-radio-hopping v-model:options="state.items" v-slot="slotProps" @on-change="changeEvent">
					<view style="display: flex; justify-content: space-between;padding: 10px;">
						<view>{{ slotProps.data.label }}</view>
						<view class="tag">{{ slotProps.data.tag }}</view>
					</view>
				</wo-radio-hopping>
			</view>
		</view>
		<view class="dark">
			<view>
				<view class="flex-center">暗黑模式</view>
				<wo-radio-hopping v-model:options="state.items" v-slot="slotProps" @on-change="changeEvent">
					<view style="display: flex; justify-content: space-between;">
						<view>{{ slotProps.data.label }}</view>
						<view class="tag">{{ slotProps.data.tag }}</view>
					</view>
				</wo-radio-hopping>
			</view>
		</view>
	</view>
	
</template>

<script setup lang="ts">
	import { reactive } from 'vue';
	const state = reactive({
	  items: [{
				value: '1',
				label: '苹果味',
				tag: '饮料'
			},
			{
				value: '2',
				label: '香蕉味',
				tag: '酒水'
			},
			{
				value: '3',
				label: '火龙果味',
				tag: '饮料'
			},
			{
				value: '4',
				label: '西瓜味',
				tag: '饮料'
			},
			{
				value: '5',
				label: '哈密瓜味',
				tag: '酒水'
			},
			{
				value: '6',
				label: '榴莲味',
				tag: '酒水'
		}],
		default: '4',
	});
	const changeEvent = (el) => {
		console.log('点击:', el);
	}
</script>

<style lang="scss" scoped>
	.flex-center {
		display: flex;
		justify-content: center;
		align-items: center;
	}
	.light {
		border-radius: 10px;
		padding: 20rpx;
		font-size: 24rpx;
		background-color: hsl(223,90%,90%);
		overflow: auto;
	}
	.dark {
		border-radius: 10px;
		padding: 20rpx;
		font-size: 24rpx;
		background-color: hsl(223,90%,10%);
		color: white;
		overflow: auto;
	}
	.tag {
		background-color: #1BA035;
		color: white;
		font-size: 10px;
		display: flex;
		align-items: center;
		justify-content: center;
		border-radius: 4px;
		padding: 0 4px;
	}
</style>
相关推荐
游戏开发爱好者81 小时前
日常开发与测试的 App 测试方法、查看设备状态、实时日志、应用数据
android·ios·小程序·https·uni-app·iphone·webview
2501_915106323 小时前
app 上架过程,安装包准备、证书与描述文件管理、安装测试、上传
android·ios·小程序·https·uni-app·iphone·webview
2501_915106323 小时前
使用 Sniffmaster TCP 抓包和 Wireshark 网络分析
网络协议·tcp/ip·ios·小程序·uni-app·wireshark·iphone
宠友信息4 小时前
2025社交+IM及时通讯社区APP仿小红书小程序
java·spring boot·小程序·uni-app·web app
“负拾捌”5 小时前
python + uniapp 结合腾讯云实现实时语音识别功能(WebSocket)
python·websocket·微信小程序·uni-app·大模型·腾讯云·语音识别
换日线°1 天前
NFC标签打开微信小程序
前端·微信小程序
局外人LZ1 天前
Uniapp脚手架项目搭建,uniapp+vue3+uView pro+vite+pinia+sass
前端·uni-app·sass
光影少年1 天前
AIGC + Taro / 小程序
小程序·aigc·taro
2501_915918411 天前
在 iOS 环境下查看 App 详细信息与文件目录
android·ios·小程序·https·uni-app·iphone·webview
前端呆头鹅1 天前
Websocket使用方案详解(uniapp版)
websocket·网络协议·uni-app