Vue绑定class和绑定内联样式的实现方法

 更新时间:2021年11月03日 11:26:17   作者:安之ccy  
本文主要介绍了Vue绑定class和绑定内联样式的实现方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

绑定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;
            }

        }
    }
})

效果:

到此这篇关于Vue绑定class和绑定内联样式的实现方法的文章就介绍到这了,更多相关Vue绑定class和绑定内联样式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vue 项目中使用Loading组件的示例代码

    vue 项目中使用Loading组件的示例代码

    这篇文章主要介绍了vue 项目中使用Loading组件的示例代码,使用 loding 过渡数据的加载时间
    2018-08-08
  • Vue3.0的优化总结

    Vue3.0的优化总结

    在本篇文章里小编给大家整理的是一篇关于Vue3.0的优化总结内容,有需要的朋友们可以学习下。
    2020-10-10
  • Vue.js计算属性computed与watch(5)

    Vue.js计算属性computed与watch(5)

    这篇文章主要为大家详细介绍了Vue.js计算属性computed与watch,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • 基于vue+echarts实现柱状图渐变色效果(每个柱子颜色不同)

    基于vue+echarts实现柱状图渐变色效果(每个柱子颜色不同)

    前段时间的vue项目中用到了echarts柱状图,由于UI设计稿中要求使用渐变色,并且每个柱子的颜色不同,于是做了一番研究,现将我的实现方案分享如下
    2024-05-05
  • Vue中v-show添加表达式的问题(判断是否显示)

    Vue中v-show添加表达式的问题(判断是否显示)

    这篇文章主要介绍了关于Vue中v-show中添加表达式用于判断是否显示的问题,很多朋友经常会遇到这样的需求,有数据来源和标签类型两行选项,需要实现点击上面的某个数据来源时,标签类型自动切换功能,感兴趣的朋友一起看看吧
    2018-03-03
  • vue 实现Web端的定位功能 获取经纬度

    vue 实现Web端的定位功能 获取经纬度

    这篇文章主要介绍了vue 实现Web端的定位功能获取经纬度,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-08-08
  • 使用Karma做vue组件单元测试的实现

    使用Karma做vue组件单元测试的实现

    这篇文章主要介绍了使用Karma做vue组件单元测试的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • 详解Vue.js动态绑定class

    详解Vue.js动态绑定class

    Vue.js的核心是一个响应的数据绑定系统,它允许我们在普通 HTML 模板中使用特殊的语法将 DOM “绑定”到底层数据。被绑定的DOM 将与数据保持同步,每当数据有改动,相应的DOM视图也会更新。基于这种特性,通过vue.js动态绑定class就变得非常简单。一起来看下吧
    2016-12-12
  • Vuex与Vue router的使用详细讲解

    Vuex与Vue router的使用详细讲解

    在看这篇文章的几点要求:需要你先知道Vuex与Vue-Router是个什么东西,用来解决什么问题,以及它的基本使用。如果你还不懂的话,建议上官网了解下Vuex与Vue-Router的基本使用后再回来看这篇文章
    2022-11-11
  • Vue修改项目启动端口号方法

    Vue修改项目启动端口号方法

    今天小编就为大家分享一篇Vue修改项目启动端口号方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11

最新评论