[JS][Vue]学习记录之动态绑定CSS

Demo地址

前言

清明一共休息了四天,有三天没有学习,今天继续学习.

v-bind:class

首先准备如下的CSS代码:

span{
    background: red;
    display: inline-block;
    padding: 10px;
    color: #fff;
    marin: 10px 0px;
}
.changeColor span{
    background: greenyellow;
}
.changeLength span:after{
    content: 'length';
    margin-left: 10px;
}

如果需要动态绑定CSS,用法如下:

<div v-on:click="changeColor = !changeColor" 
v-bind:class="{changeColor:changeColor}">
<span>allen</span>

这里v-bind:class="{changeColor:changeColor}"{}内第一个changeColor表示需要绑定的CSS样式,第二个changeColor表示是否采用这个样式.同时对这个div添加了一个点击事件,用来更改changeColor的值.

另外,还有一种方法也可以实现动态绑定:

<button @click="changeLength = !changeLength">changeLength</button>
    <div v-bind:class="compare">
        <span>marry</span>
    </div>

这里是绑定了一个compare的方法,方法实现如下:

<script>
    var app = new Vue({
        el:'#app',
        data:{
            changeColor:false,
            changeLength:false
        },
        computed:{
            compare:function () {
                return {
                    changeColor:this.changeColor,
                    changeLength:this.changeLength
                }
            }
        }
    });
</script>

完整代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>The forth day</title>
    <script src="../1/vue.js"></script>
    <link rel="stylesheet" href="../2/2.css">
</head>
<body>
<div id="app">
<h1>动态绑定css</h1>
<h2>动态改变颜色</h2>
<div v-on:click="changeColor = !changeColor" v-bind:class="{changeColor:changeColor}">
    <span>allen</span>
</div>
    <h2>动态改变长度</h2>
    <button @click="changeLength = !changeLength">changeLength</button>
    <div v-bind:class="compare">
        <span>marry</span>
    </div>
</div>
<script>
    var app = new Vue({
        el:'#app',
        data:{
            changeColor:false,
            changeLength:false
        },
        computed:{
            compare:function () {
                return {
                    changeColor:this.changeColor,
                    changeLength:this.changeLength
                }
            }
        }
    });
</script>
</body>
</html>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Vue 实例 属性和方法 每个 Vue 实例都会代理其 data 对象里所有的属性:var data = { a:...
    云之外阅读 2,258评论 0 6
  • 这篇笔记主要包含 Vue 2 不同于 Vue 1 或者特有的内容,还有我对于 Vue 1.0 印象不深的内容。关于...
    云之外阅读 5,086评论 0 29
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,080评论 19 139
  • 寂夜,无声。 翻来覆去,挥之不去的是欢喜,辗转反侧,脑海里想着的是你。 悄悄的,心跳的声音格外的清晰,想你。 两行...
    谢丹儒阅读 371评论 0 3
  • 互联网的核心是知识,知识需要结构化才能成为资本。如何打造一个有情怀的学习型社群,让知识得到沉淀和升华。 古人说知止...
    粽小哥阅读 491评论 0 0