vue使用element ui绘制一个switch开关,active-text为分页,inactive-text为列表,switch圆角矩形开关一半是分页一半是列表两部分,v-model=“”switchVal”,switchVal为false时是列表,true时为分页,true时字体列表的背景样式置灰或者透明字体分页背景色则显示为蓝色,false时字体分页的背景样式置灰或透明字体列表背景则显示为蓝色,switch开关始终显示列表与分页,只存在颜色的差异
时间: 2024-03-06 18:50:59 浏览: 144
可以使用如下代码实现:
```html
<template>
<div>
<el-switch v-model="switchVal" active-text="分页" inactive-text="列表"></el-switch>
<div class="switch-container">
<div class="list" :class="{ 'active': !switchVal }">列表</div>
<div class="page" :class="{ 'active': switchVal }">分页</div>
</div>
</div>
</template>
<style scoped>
.switch-container {
display: flex;
justify-content: space-between;
align-items: center;
width: 200px;
height: 40px;
border-radius: 20px;
background-color: #e4e7ed;
padding: 0 10px;
}
.switch-container .list,
.switch-container .page {
flex: 1;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
color: #bbb;
font-weight: bold;
border-radius: 20px;
cursor: pointer;
transition: all 0.3s ease;
}
.switch-container .list.active {
background-color: #409eff;
color: #fff;
}
.switch-container .page.active {
background-color: #fff;
color: #409eff;
}
.el-switch {
margin-right: 10px;
}
</style>
<script>
export default {
data() {
return {
switchVal: false
}
}
}
</script>
```
其中,使用了flex布局将列表和分页放在了switch的两侧,并且通过样式控制active状态下的背景色和文字颜色。同时,使用了v-model绑定switchVal变量,根据switchVal的值来控制active状态。最后,使用了element-ui的el-switch组件来实现switch开关的功能。
阅读全文