效果:指定变换成某种颜色
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.basic{
width: 400px;
height: 100px;
border: 1px solid black;
}
.happy{
background: #feff74;
}
.sad{
background: red;
}
.normal{
background: #00F7DE;
}
.liner1{
border-radius: 20px;
}
.liner2{
font-size:20px;
}
.liner3{
font-family: Bahnschrift;
}
</style>
<script type="text/javascript" src="js/vue/vue.min.js"></script>
</head>
<body>
<div id="root">
<!--绑定class样式字符串写法,适用于:样式的类名不确定,需要动态指定-->
<div class="basic":class="a" @click="changeMood">{{name}}</div>
</div>
</body>
<script>
new Vue({
el:'#root',
data:{
name:'山河大学',
a:'normal'
},
methods:{
changeMood(){
this.a = 'happy'
}
}
})
</script>
</html>
Math.random()*3 随机数无限趋近于1 不会大于1。所以要乘以3,并且向下取整Math.floor(Math.random()*3),使其范围保持在0-2。
改进:随机的颜色
<script>
new Vue({
el:'#root',
data:{
name:'山河大学',
a:'normal'
},
methods:{
changeMood(){
const arr = ['happy','sad','normal']
const index = Math.floor(Math.random()*3)
this.a = arr[index]
console.log(index)
}
}
})
</script>
<body>
<div id="root">
<!--绑定class样式字符串写法,适用于:样式的类名不确定,需要动态指定-->
<div class="basic":class="a" @click="changeMood">{{name}}</div><br/>
<!--绑定class样式,数组写法,适用于:要绑定的样式个数不确定,名字也不确定-->
<div class="basic":class="ClassArr">{{name}}</div>
</div>
</body>
<script>
const vm = new Vue({
el:'#root',
data:{
name:'山河大学',
a:'normal',
ClassArr:['liner1','liner2','liner3']
},
methods:{
changeMood(){
const arr = ['happy','sad','normal']
const index = Math.floor(Math.random()*3)
this.a = arr[index]
console.log(index)
}
}
})
</script>
绑定class样式,数组写法,适用于:要绑定的样式个数确定,名字也确定,动态决定是否应用样式
点击按钮调用方法,动态实现是否应用样式效果
<body>
<div id="root">
<!--绑定class样式字符串写法,适用于:样式的类名不确定,需要动态指定-->
<div class="basic":class="a" @click="changeMood">{{name}}</div><br/>
<!--绑定class样式,数组写法,适用于:要绑定的样式个数不确定,名字也不确定-->
<div class="basic":class="ClassArr">{{name}}</div>
<!--绑定class样式,数组写法,适用于:要绑定的样式个数确定,名字也确定,动态决定是否应用样式-->
<div class="basic":class="ClassObj">{{name}}</div>
<!--点击按钮调用方法,动态实现是否应用样式效果-->
<button @click="aaa">应用/取消</button>
<button @click="bbb">应用/取消</button>
</div>
</body>
<script>
const vm = new Vue({
el:'#root',
data:{
name:'山河大学',
a:'normal',
ClassArr:['liner1','liner2','liner3'],
ClassObj:{
liner1:false,
liner2:false,
}
},
methods:{
changeMood(){
const arr = ['happy','sad','normal']
const index = Math.floor(Math.random()*3)
this.a = arr[index]
console.log(index)
},
aaa(){
this.ClassObj.liner1 = !this.ClassObj.liner1
},
bbb(){
this.ClassObj.liner2 = !this.ClassObj.liner2
}
}
})
</script>