使用Vue实例对象中的配置选项实现(1)设置四个按钮,“话费”“机票”“酒店”“游戏” (2)每个按钮点击后对应文字“充话费”“订机票”“订酒店”“斗地主” (3)自定义盒子样式 (4)函数实现:点击按钮,自动切换盒子内的文字,同时切换按钮的颜色
时间: 2024-09-28 21:04:30 浏览: 52
在Vue.js中,你可以使用`v-on`指令绑定事件处理器,以及组件的属性和CSS类来实现这个功能。首先,创建一个Vue组件,例如`ButtonBox.vue`:
```html
<template>
<div class="button-box">
<button v-for="(item, index) in items" :key="index" @click="changeText(index)" :class="{ active: isCurrent(index)}" :text="item.text">
{{ item.name }}
</button>
</div>
</template>
<script>
export default {
data() {
return {
items: [
{ name: '话费', text: '充话费', color: 'primary' },
{ name: '机票', text: '订机票', color: 'secondary' },
{ name: '酒店', text: '订酒店', color: 'tertiary' },
{ name: '游戏', text: '斗地主', color: 'quaternary' }
],
currentIndex: 0,
};
},
methods: {
changeText(index) {
this.currentIndex = (this.currentIndex + 1) % this.items.length;
this.$emit('update:text', this.items[this.currentIndex].text);
// 更新按钮颜色
this.$refs.buttons[index].classList.remove('active');
this.$refs.buttons[this.currentIndex].classList.add('active');
},
},
};
</script>
<style scoped>
.button-box {
display: flex;
justify-content: space-around;
}
button {
padding: 10px 20px;
margin: 5px;
cursor: pointer;
transition: background-color 0.3s ease;
}
.active {
background-color: var(--your-color); /* 自定义颜色 */
}
</style>
```
在这个例子中,我们创建了一个包含四个按钮的盒子,每个按钮的文字和初始颜色都是预设的。`changeText`方法会在点击时更新当前显示的文字、切换到下一个按钮,并改变按钮的样式。
阅读全文