質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

SVG

SVGは、XMLを基盤とした2Dベクター画像記述言語。画像を線・面といった図形の集合体として扱うベクター画像のため、環境に適した表示が可能です。アニメーション機能もサポートされており、簡単なインタラクティブコンテンツ作成もできます。

Nuxt.js

Nuxt.jsは、ユニバーサルなSPAが開発可能なVue.jsベースのフレームワーク。UIの描画サポートに特化しており、SSRにおけるサーバーサイドとクライアントサイドのUIレンダリングなどさまざまな機能を持ちます。

Vuetify.js

Vuetify.jsは、マテリアルデザインを基本とするVue.jsのCSSフレームワークです。多くのマテリアルデザインのコンポーネントを提供しており、あらゆるアプリケーションに対応可能。vue-cli用テンプレートがあり、簡単にページを作成できます。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

Q&A

0回答

1367閲覧

Nuxt.js+Vuetifyでカードを押してカード内の表示画像を切り替えたい

mola1129

総合スコア4

Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

SVG

SVGは、XMLを基盤とした2Dベクター画像記述言語。画像を線・面といった図形の集合体として扱うベクター画像のため、環境に適した表示が可能です。アニメーション機能もサポートされており、簡単なインタラクティブコンテンツ作成もできます。

Nuxt.js

Nuxt.jsは、ユニバーサルなSPAが開発可能なVue.jsベースのフレームワーク。UIの描画サポートに特化しており、SSRにおけるサーバーサイドとクライアントサイドのUIレンダリングなどさまざまな機能を持ちます。

Vuetify.js

Vuetify.jsは、マテリアルデザインを基本とするVue.jsのCSSフレームワークです。多くのマテリアルデザインのコンポーネントを提供しており、あらゆるアプリケーションに対応可能。vue-cli用テンプレートがあり、簡単にページを作成できます。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

0グッド

1クリップ

投稿2019/10/08 07:56

編集2019/10/08 08:22

前提・実現したいこと

  • Nuxt.js + Vuetifyで結果を記録するようなWebサイトを作成しています。
  • そのなかで、カードをクリックする度に「〇」と「×」のsvg画像ファイルを切り替えてカード内に表示したいと考えています。

思いついた事としては、

  • 2つのsvgファイル(circle.svg, cross.svg)をNuxt.jsのstaticディレクトリに配置
  • そのpathが入った要素数2の配列recordImageを作成
  • Vuetifyの**<v-img>タグで常にrecordImage[0]を参照**し、**recordImage.reverse()**を行うことで切り替える

発生している問題・エラーメッセージ

  • srcの変更は適切にされているが、currentSrcが変更されておらず、切り替えが起こらない

デベロッパーツール

該当のソースコード

Vue

1<template> 2 <v-container> 3 <v-col v-for="i in recordNum" :key="i" cols="12"> 4 <v-row justify="space-around"> 5 <v-card 6 v-for="n in 4" 7 :key="n" 8 min-height="200" 9 min-width="200" 10 @click="setRecord" 11 > 12 <!-- うまく画像が切り替わらない--> 13 <v-img :src="recordImage[0]"></v-img> 14 </v-card> 15 </v-row> 16 </v-col> 17 <v-row justify="center" class="pa-5"> 18 <v-btn>Save</v-btn> 19 </v-row> 20 </v-container> 21</template> 22 23<script> 24export default { 25 head() { 26 return { 27 title: 'Record page' 28 } 29 }, 30 data: () => ({ 31 recordNum: 1, 32  // 〇と×の画像ファイル 33 recordImage: ['circle.svg', 'cross.svg'] 34 }), 35 methods: { 36 setRecord() { 37 // 切り替え処理 38 this.recordImage.reverse() 39 } 40 } 41} 42</script>

試したこと

  • Vuetifyの<v-if>を2つの<v-img>に適用することも試しましたが、同様に切り替わりませんでした。

補足情報(FW/ツールのバージョンなど)

  • Nuxt.js 2.0.0
  • Vuetify 2.1.1

ご教授頂ければ幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問