美文网首页
Vue :class、Style 动态样式绑定实现 toggle

Vue :class、Style 动态样式绑定实现 toggle

作者: MercuryWang | 来源:发表于2019-04-10 14:49 被阅读0次

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

  1. 对象语法,实现样式切换,类似 jQuery 的 toggleClass
toogleClass.gif
<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>
  1. 数组语法,效果同上
<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>

  1. 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>

相关文章

网友评论

      本文标题:Vue :class、Style 动态样式绑定实现 toggle

      本文链接:https://www.haomeiwen.com/subject/hccniqtx.html