用HTM+JavaScript+CSS+Vue.js写一个按钮绑定JavaScript事件用来管理小灯的开关及颜色,要求用class与style两种方式完成以下要求: 按下开关 小灯红色 再次按下 小灯绿色 再次按下 小灯蓝色 再次按下 小灯关闭
时间: 2024-09-15 19:13:45 浏览: 43
要创建一个简单的HTML页面,结合Vue.js来实现这个功能,首先需要安装Vue。你可以通过npm或yarn安装:
```bash
# 使用npm
npm install vue
# 或者使用yarn
yarn add vue
```
接下来,创建一个名为`index.html`的文件,并添加以下代码:
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>小灯控制</title>
<script src="https://cdn.jsdelivr.net/npm/vue@next"></script>
<style>
.light {
display: inline-block;
width: 50px;
height: 50px;
border-radius: 25px;
transition: background-color 0.3s;
}
.red { background-color: red; }
.green { background-color: green; }
.blue { background-color: blue; }
.off { background-color: transparent; }
</style>
</head>
<body>
<div id="app">
<button @click="toggleLightColor">点击切换灯光颜色</button>
<div class="light" :class="{ 'red': isRed, 'green': isGreen, 'blue': isBlue, 'off': !isLit }"
style="--lit: {{ isLit ? 'true' : 'false' }};"></div>
</div>
<script>
new Vue({
el: '#app',
data: {
isRed: false,
isGreen: false,
isBlue: false,
isLit: true,
},
methods: {
toggleLightColor() {
this.isLit = !this.isLit;
if (this.isLit) {
if (!this.isRed) {
this.isRed = true;
// 如果不是红色,先变红
} else if (!this.isGreen && this.isRed) {
this.isGreen = true;
// 红色转绿色
} else if (!this.isBlue && this.isGreen) {
this.isBlue = true;
// 绿色转蓝色
} else {
// 蓝色再转回关闭状态
this.isRed = false;
this.isGreen = false;
this.isBlue = false;
}
}
},
}
});
</script>
</body>
</html>
```
在这个示例中,我们创建了一个Vue实例,监听按钮的点击事件并更新灯的颜色。当灯亮着时,每次点击会改变颜色顺序;当灯关闭时,再次点击会打开灯并开始循环颜色。
阅读全文