Vue绑定class的方式有哪些,代码是什么
Admin 2022-07-05 群英技术资讯 1018 次浏览
这篇文章主要介绍“Vue绑定class的方式有哪些,代码是什么”的相关知识,下面会通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Vue绑定class的方式有哪些,代码是什么”文章能帮助大家解决问题。方式一:
对象语法:给 v-bind:class传 一个对象,以动态地切换 class
当对象中某key对应的值为true时,该key做为className被添加到标签上
.box {
width: 100px;
height: 100px;
background-color: gray;
}
.circle {
border-radius: 50%;
}
<div id="app">
<div class="box" @click="isCircle = !isCircle" :class="{circle:isCircle}"></div>
<!--当isCircle为true时,该div的class名多加一个circle-->
<p>{{isCircle}}</p>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
new Vue({
el:"#app",
data:{
isCircle: false
}
})
</script>
初始化时box为方形,点击时切换成圆形,再次点击,切换成方形,以此类推
:class="{circle:isCircle}"还可以写到计算属性computed里,return这个对象
<div class="box" @click="isCircle = !isCircle" :class="divChange"></div>
computed:{
divChange:function(){
return {circle:this.isCircle}
}
}
方式二:
数组语法:把一个数组传给 v-bind:class,以应用一个 class 列表
css多加一个蓝色背景的效果:
.blue {
background-color: blue;
}
<div id="app">
<div class="box" v-on:click="clickFun()" :class="[color,divChange()]"></div>
<p>{{isCircle}}</p>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
new Vue({
el:"#app",
data:{
isCircle: false,
color:""
},
methods:{
divChange: function(){
return {circle:this.isCircle}
},
clickFun: function(){
this.isCircle = !this.isCircle;
if (this.isCircle){
this.color = "blue"
}else{
this.color = ""
}
}
}
})
</script>
绑定内联样式同样可以用对象语法或数组语法,此处用对象语法和计算属性结合的方法实例:
<div id="app">
<!--绑定内联样式-->
<div class="box" v-on:click="clickFun()" :style="divStyle"></div>
<p>{{isCircle}}</p>
</div>
divStyle:
divStyle: function(){
return {
backgroundColor:this.color
}
}
这样就可以将想要的颜色设置到.box上了
小demo:
1.点击box时,切换圆形和方形 ——内联样式绑定
2.初始box颜色为红色,点击开始按钮,每隔一秒切换颜色(红/蓝),再次点击按钮后取消颜色切换 —— class绑定
.box {
width: 100px;
height: 100px;
background-color: red;
}
.blue {
background-color: blue;
}
<div id="app">
<div class="box" :style="borderRadius" @click="changeStyle" :class="{blue: isBlue}"></div>
<button @click="startClick">开始</button>
</div>
new Vue({
el: "#app",
data: {
isCircle: false,
borderRadius: { borderRadius: "50%" },
isStart: false,
isBlue: false,
timer: null
},
methods: {
changeStyle: function () {
if (this.borderRadius.borderRadius == "0%") {
this.borderRadius.borderRadius = "50%"
} else {
this.borderRadius.borderRadius = "0%"
}
},
startClick: function () {
this.isStart = !this.isStart;
}
},
watch: {
isStart: function (val) {
var vm = this;
if (val) {
console.log("开启颜色切换")
this.timer = setInterval(function () {
vm.isBlue = !vm.isBlue
}, 1000)
}else{
console.log("取消计时器,停止颜色切换")
clearInterval(this.timer);
this.timer = null;
}
}
}
})
效果:

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
目录前言案例回顾原型的拓展前言设计模式呢最多的可能是用到类,我们去通过类来封装一些实用的方法,通过设计模式去实现各个方法之间的解耦等,由于JS中的继承是用原型链继承的,所以原型模式是用原型实例指向创建对象的类,使用于创建新的对象的类共享原型对象的属性以及方法案例比如我们现在需要实现一个页面上的轮播图,可能需要用到对轮播
TypeScript语法详解之类型操作的补充 目录 类型操作的补充 类型断言的使用 非空类型的断言 可选链使用介绍 两个特殊操作符 字面量类型介绍 字面量推理介绍 总结 类型操作的补充 类型断言的使用 有时候TypeScript无法获取具体的类型信息,这个我们需要使用类型断言( Type Assertions). 比如我们在操作DOM的时候, 通过 document.getElementById 获取元素, TypeScript只知道该函数会返回HTMLElement ,但并不知道它具体的类型, 是无法得知具体是img还是div等等: 当我
父子组件之间的通信就是props down,events up,父组件通过属性props向下传递数据给子组件,子组件通过事件events 给父组件发送消息,这篇文章主要给大家介绍了关于vue中组件的props属性的相关资料,需要的朋友可以参考下
这篇文章主要给大家分享得是四十九个javascript小知识实用技巧像下面文章围绕JavaScript得各种技巧详细介绍,需要的朋友可以参考一下,希望对你有所帮助
这篇文章主要为大家详细介绍了vue实现手机验证码登录,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008