Vue :class、Style 动态样式绑定实现 toggle
2019-04-10 本文已影响0人
MercuryWang
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
- 对象语法,实现样式切换,类似 jQuery 的 toggleClass

<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>Document</title>
<script src="../node_modules/vue/dist/vue.js"></script>
<style>
.active {
color: rebeccapurple;
}
</style>
</head>
<body>
<div id="app">
<div @click="toggleClass" :class="{active:isActive}">Swish Swish</div>
</div>
<script>
let vm = new Vue({
el: "#app",
data: {
isActive: false
},
methods: {
toggleClass: function() {
this.isActive = !this.isActive;
}
}
});
</script>
</body>
</html>
- 数组语法,效果同上
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>Document</title>
<script src="../node_modules/vue/dist/vue.js"></script>
<style>
.active {
color: rebeccapurple;
}
</style>
</head>
<body>
<div id="app">
<h1 @click="addClass" :class="[activated]">Swish Swish</h1>
</div>
<script>
let vm = new Vue({
el: "#app",
data: {
activated: ""
},
methods: {
addClass: function() {
this.activated = this.activated === "active" ? "" : "active";
}
}
});
</script>
</body>
</html>
- Style 样式绑定
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>Document</title>
<script src="../node_modules/vue/dist/vue.js"></script>
</head>
<body>
<div id="app">
<h1 @click="changeClass" :style="styleObj">Swish Swish</h1>
</div>
<script>
let vm = new Vue({
el: "#app",
data: {
styleObj: {
color: "black"
}
},
methods: {
changeClass: function() {
this.styleObj.color =
this.styleObj.color === "black" ? "rebeccapurple" : "black";
}
}
});
</script>
</body>
</html>