zoukankan      html  css  js  c++  java
  • vue四:vue基础之Class和style绑定

    一:class绑定

    准备好class

    一:三目运算的方式

    把class动态绑定,定义一个变量isActive为true,为true时绑定class=red,定义点击事件handlClick,当点击时,isActive取反,即为false,绑定class=yellow

    二:对象的形式

    上面是对只有两个class选项切换的情况,当有多个class切换的时候,可以使用对象的形式

    如果要改变class,则只需要对classObj对象做操作就行了

    但是此时如果增加class,则不会成功

    原因是后面加入的属性并没有被get、set拦截

    三:数组的方式

    接下来只需要对数组做操作就可以改变class了

    删除

    增加

    <!DOCTYPE html>
    <html lang='en'>
    <head>
    <meta charset='UTF-8'>
    <meta name='viewport' content='width=device-width, initial-scale=1.0'>
    <script src='./vue.js'></script>
    <title></title>
    <style>
    .red {
    background-color: red;
    }

    .yellow {
    background-color: yellow;
    }
    </style>
    </head>
    <body>
    <div id="app">
    <div style="background: yellow">111</div>
    <button @click="handleClick()">点击动态绑定class</button>
    <!-- <div :class="isActive?'red':'yellow'">动态绑定class的三目写法</div>-->
    <!-- <div :class="classObj">动态绑定class的对象写法</div>-->
    <div :class="classArr">动态绑定class的数组写法</div>

    </div>
    <script type="text/javascript">
    let vm = new Vue({
    el: "#app",
    data: {
    isActive: true,
    classObj: {
    'a': true,
    'b': true
    },
    classArr: ['a', 'b']
    },
    methods: {
    handleClick() {
    this.isActive = !this.isActive
    }
    }
    });
    </script>
    </body>
    </html>

    二、绑定style

    1.三目运算符的形式

    二:对象写法

    修改

    如果是带-的属性,则改为驼峰命名法:

    此写法与上面绑定class的方法一样,有个缺点,新增的时候不会被get、set拦截

    三:数组的写法

    需以对象的形式添加style

     

    <!DOCTYPE html>
    <html lang='en'>
    <head>
    <meta charset='UTF-8'>
    <meta name='viewport' content='width=device-width, initial-scale=1.0'>
    <script src='./vue.js'></script>
    <title></title>
    <style>
    .red {
    background-color: red;
    }

    .yellow {
    background-color: yellow;
    }
    </style>
    </head>
    <body>
    <div id="app">
    <!-- <button @click="handleClick()">点击动态绑定class</button>-->
    <!-- <div :class="isActive?'red':'yellow'">动态绑定class的三目写法</div>-->
    <!-- <div :class="classObj">动态绑定class的对象写法</div>-->
    <!-- <div :class="classArr">动态绑定class的数组写法</div>-->

    <button @click="handleClick()">点击动态绑定style</button>
    <!-- <div :style="'background: '+(isActive?'yellow':'red')">动态绑定style的三目写法</div>-->
    <!-- <div :style="styleObj">动态绑定style的对象写法</div>-->
    <div :style="styleArr">动态绑定style的对象写法</div>
    </div>
    <script type="text/javascript">
    let vm = new Vue({
    el: "#app",
    data: {
    isActive: true,
    styleArr: [],
    styleObj: {
    // font-family:'宋体';">此写法会报错
    backgroundColor: 'red'
    },
    classObj: {
    'a': true,
    'b': true
    },
    classArr: ['a', 'b']
    },
    methods: {
    handleClick() {
    this.isActive = !this.isActive
    }
    }
    });
    </script>
    </body>
    </html>
    讨论群:249728408
  • 相关阅读:
    lintcode:最大子正方形
    lintcode 中等题:k Sum ii k数和 II
    lintcode 中等题:A + B Problem A + B 问题
    Protege汉字不能正常显示问题
    Protege A DOT error has occurred错误
    lintcode :reverse integer 颠倒整数
    Reported time is too far out of sync with master. Time difference of 52692ms > max allowed of 30000ms
    Please add or free up more resources then turn off safe mode manually.
    Permission denied: user=root, access=WRITE, inode="/":hadoopuser:supergroup:drwxr-xr-x
    Hadoop重新格式化HDFS的方法
  • 原文地址:https://www.cnblogs.com/zhongyehai/p/12336670.html
Copyright © 2011-2022 走看看