用vue写出一个按钮匹配一个勾选框,写四行。有一个开始按钮点击开始后按钮变色并变成停止按钮,第一行延时0.1秒触发。第二行0.2秒依次类推。然后有个开始按钮。勾选后按钮后。比如勾选了第一行。第三行。分别在每0.1秒点击下第一行按钮。每0.3秒点击下第三行按钮,并增加点击动画。
时间: 2023-08-23 07:05:56 浏览: 91
好的,根据您的需求,我给您提供一份 Vue 代码:
```
<template>
<div>
<button :class="{ active: isStart }" @click="toggleStart">{{ buttonText }}</button>
<div>
<label><input type="checkbox" v-model="checked[0]">第一行</label>
<label><input type="checkbox" v-model="checked[1]">第二行</label>
<label><input type="checkbox" v-model="checked[2]">第三行</label>
<label><input type="checkbox" v-model="checked[3]">第四行</label>
</div>
<div>
<button v-for="(item, index) in buttons" :key="index" :class="{ clicked: clicked[index] }" :disabled="!checked[index] || !isStart"
@click="clickButton(index)">{{ item }}</button>
</div>
</div>
</template>
<script>
export default {
data() {
return {
isStart: false,
buttonText: '开始',
checked: [false, false, false, false],
buttons: ['第一行', '第二行', '第三行', '第四行'],
clicked: [false, false, false, false],
intervals: []
}
},
methods: {
toggleStart() {
if (this.isStart) {
this.stop()
} else {
this.start()
}
},
start() {
this.isStart = true
this.buttonText = '停止'
this.buttons.forEach((item, index) => {
if (this.checked[index]) {
const interval = setInterval(() => {
this.clickButton(index)
}, (index + 1) * 100)
this.intervals.push(interval)
}
})
},
stop() {
this.isStart = false
this.buttonText = '开始'
this.intervals.forEach(interval => clearInterval(interval))
this.intervals = []
},
clickButton(index) {
this.clicked.splice(index, 1, true)
setTimeout(() => {
this.clicked.splice(index, 1, false)
}, 300)
}
}
}
</script>
<style>
button {
margin-right: 10px;
margin-bottom: 10px;
padding: 5px 10px;
border-radius: 5px;
background-color: #eee;
color: #333;
transition: all 0.3s;
}
button.active {
background-color: #4caf50;
color: #fff;
}
button.clicked {
animation: clickAnimation 0.3s;
}
@keyframes clickAnimation {
0% {
transform: scale(1);
}
50% {
transform: scale(1.2);
}
100% {
transform: scale(1);
}
}
</style>
```
这段代码实现了一个按钮和勾选框的交互。用户可以勾选想要点击的按钮,并在点击开始按钮后,程序会自动按照设定的时间间隔模拟用户点击按钮的行为。同时,点击的按钮会有一个点击动画。停止按钮也会在点击后变色。
阅读全文
相关推荐














