【问题标题】:Dynamic Class Binding SVG in Vue.jsVue.js 中的动态类绑定 SVG
【发布时间】:2020-06-30 12:46:55
【问题描述】:

以下使用数组语法一次性绑定静态和动态类。静态有效,但动态无效。

动态类绑定如何与 SVG 一起使用?

https://codesandbox.io/s/dynamic-class-binding-svg-in-vue-js-jc5qg

<!DOCTYPE html>
<html>
  <head>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <style>
      .static {
        stroke: black;
        stroke-width: 1;
        fill: yellow;
      }

      .dynamic {
        fill: red;
      }
    </style>
  </head>
  <body>

    <svg id="app" width="100%" height="100%">
      <circle
        cx="50" cy="50" r="40"
        :class="[ 'static', dynamicToggle ? 'dynamic' : '' ]"
      />
    </svg>

    <button
      @click.prevent="dynamicToggle = ! dynamicToggle"
      >toggle color
    </button>

    <script type="text/javascript">
      new Vue({
        el: '#app',
        data: {
          dynamicToggle: false
        }
      })
    </script>
  </body>
</html>

【问题讨论】:

    标签: vue.js svg


    【解决方案1】:

    button 不在 vue 应用中。

    您可以将其包装在另一个 div 中以解决此问题:

        <div id="app">
          <svg width="100%" height="100%">
            <circle
              cx="50"
              cy="50"
              r="40"
              :class="[ 'static', dynamicToggle ? 'dynamic' : '' ]"
            />
          </svg>
          <button @click.prevent="dynamicToggle = ! dynamicToggle">
            toggle color
          </button>
        </div>
    

    【讨论】:

      猜你喜欢
      • 2015-11-12
      • 1970-01-01
      • 2023-03-10
      • 2019-09-17
      • 2023-04-08
      • 1970-01-01
      • 2013-01-16
      • 2020-01-11
      • 2019-04-30
      相关资源
      最近更新 更多