Skip to content

Switch 开关

支持点击与拖动切换,带 Minecraft 弹跳动画。

on = true
vue
<script setup lang="ts">
import { ref } from 'vue'
const enabled = ref(true)
</script>

<template>
  <mc-switch v-model="enabled" @change="v => console.log(v)" />
</template>

自定义图标

通过 onIconoffIcon 属性可自定义开关两侧的内嵌图标,传入 SVG/图片 URL 路径。不传则使用默认点状图标。

on = true
html
<mc-switch
  v-model="enabled"
  on-icon="/mcui-oreui/eye.svg"
  off-icon="/mcui-oreui/locked.svg"
/>

自定义颜色

通过 bgcolor 属性设置开启时的背景色,覆盖默认绿色。

html
<mc-switch v-model="enabled" bgcolor="#2E6BE5" />
<mc-switch v-model="enabled" bgcolor="#9a3f3f" />
<mc-switch v-model="enabled" bgcolor="#ff8800" />

Props

名称类型默认说明
modelValuebooleanfalse开关状态(v-model)
disabledbooleanfalse是否禁用
onIconstring''自定义开启侧图标 URL;置空使用默认
offIconstring''自定义关闭侧图标 URL;置空使用默认
bgcolorstring''开启时的自定义背景色

Events

事件参数说明
update:modelValuebooleanv-model 更新
changeboolean状态变化(含 click 音效与弹跳动画)

支持鼠标/触摸拖动:水平拖动超过 10px 即按方向切换。

MIT Licensed · 设计语言移植自 Spectrollay-McUI