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くらい動かなかったのがわたし。
コメント