【Vue】Vue.jsで簡単SVG操作

svgと言っても、インラインSVGにしないと操作できないようですが、ひとまずコンパイル不要型の書き方で。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>vue</title>
</head>
<body>
<div id="app">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 84.95 109.55" width="100px"><path v-bind:fill="color" stroke="#000" d="M37.7.81c-19.28,2.53-29.15,19.77-31,23-10.09,17.61-5.39,35.75-3,45,2.12,8.18,9.57,37,28,40,20.16,3.28,37.51-26.92,41-33,6.45-11.22,16.7-29.07,9-48C75.09,11.53,56.79-1.7,37.7.81Z"/></svg>
    <label>SVGを操作</label>
    <input type="color" v-model="color">
</div>
<hr>

<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
<script>
    new Vue({
        el: '#app',
        data: {
            color: "#fff"
        }
    });
</script>
</body>
</html>

上記ソースは、svgのfillの色を、input type="color"で変更可能にしたもの。

 

path v-bind:fill="color"
v-model="color"

data:{color:"#fff"}

が重要。

 

ちなみに、color:"#fff"のダブルクォーテーションを忘れていて、10mくらい動かなかったのがわたし。