vue首先使用div标签定义一个盒子,点击盒子来控制盒子的大小以及颜色。(1)盒子自身颜色为蓝色(2)第一次点击盒子区域,盒子变小并且颜色变黑色,然后循环
时间: 2024-01-29 14:02:37 浏览: 151
可以使用Vue的模板语法、绑定事件和计算属性来实现这个需求。具体实现代码如下:
```html
<template>
<div
:style="{ backgroundColor: boxColor, width: boxWidth + 'px', height: boxHeight + 'px' }"
@click="handleClick"
></div>
</template>
<script>
export default {
data() {
return {
boxColor: 'blue', // 盒子颜色
boxWidth: 200, // 盒子宽度
boxHeight: 200, // 盒子高度
isClicked: false // 是否已经点击
}
},
methods: {
handleClick() {
if (this.isClicked) { // 第二次及以后的点击,改变颜色和尺寸
this.boxColor = this.getRandomColor()
this.boxWidth = this.getRandomSize()
this.boxHeight = this.getRandomSize()
} else { // 第一次点击,改变颜色和尺寸,并将isClicked设置为true
this.boxColor = 'black'
this.boxWidth = 100
this.boxHeight = 100
this.isClicked = true
}
},
getRandomColor() { // 生成随机颜色的方法
const colors = ['red', 'green', 'yellow', 'pink', 'purple', 'orange']
return colors[Math.floor(Math.random() * colors.length)]
},
getRandomSize() { // 生成随机尺寸的方法
return Math.floor(Math.random() * 200 + 100)
}
},
computed: {
boxStyle() {
return {
backgroundColor: this.boxColor,
width: this.boxWidth + 'px',
height: this.boxHeight + 'px'
}
}
}
}
</script>
```
这段代码中,我们新增了一个isClicked属性来记录盒子是否已经被点击过,同时新增了两个方法:getRandomColor和getRandomSize,用来生成随机的颜色和尺寸。在handleClick方法中,我们根据isClicked的值来判断是否为第一次点击,如果是则改变颜色和尺寸,并将isClicked设置为true,否则生成随机颜色和尺寸。我们也可以使用计算属性boxStyle来简化模板中的样式绑定。这样,每次点击盒子时,都会改变盒子的颜色和尺寸,实现了循环的效果。
阅读全文