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

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

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

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

Nuxt.js

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

772閲覧

一定間隔でアニメーションが上手く作動しません。

YUOKAWARA

総合スコア1

Vue.js

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

Nuxt.js

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2020/09/14 12:19

編集2020/09/21 04:42

前提・実現したいこと

ボタンを押すと、一定間隔でアニメーションが作動する。

ここに質問の内容を詳しく書いてください。
はじめまして。初めて質問致します。
Nuxt.jsにてボタンを押すと一定間隔でアニメが表示できる機能を実装しています。
現在ボタンを押すと、アニメーションは一回のみ表示できます。
繰り返し表示ができません。
よろしければアドバイスをいただけますでしょうか?

該当のソースコード

コード <v-col> <v-row justify="center"> <template> <v-card> <transition mode="out-in"> <div v-if="this.show"> <v-list class="welcome"> <v-list-item> <v-list-item-avatar> <img src="~/assets/craphands.jpg" /> </v-list-item-avatar> <v-list-item-content> <v-list-item-title>テストお客様</v-list-item-title> </v-list-item-content> </v-list-item> </v-list> </div> </transition> <button v-on:click="display()">ボタン</button> </v-card> </template> </v-row> </v-col> <script> data: () => ({ show: false, }) methods: { display: function welanime() { console.log('iwehfoiwhe') this.show = !this.show setTimeout(() => { this.show = false }, 3000) function intTim() { var wtm = 5000 setInterval(welanime, wtm) } intTim(); }, } </script> <style scoped> .welcome { background-color: rgb(133, 191, 238); } .show-enter-active { transition: opacity 1s; } .show-enter { opacity: 0; } .v-enter-active { transition: all 1s ease 0s; } .v-leave-active { transition: all 0.3s ease 0s; } .v-leave-active { position: absolute; } .v-enter, .v-leave-to { opacity: 0; } .v-enter { transform: translateX(60px); } .v-enter-to, .v-leave { transform: translateX(0); } .v-leave-to { transform: translateY(-60px); } </style>

試したこと

console.logを記述しデバッグをしながら作業。
現在、繰り返しの出力は確認できています。しかし出力回数が、2回、4回、8回と倍になっていきます。
アニメーションは変わらず1回のみの作動です。

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

開発にvuetifyを使用しております。

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

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

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

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

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

kuma_kuma_

2020/09/20 18:15

こちらにNuxt.jsの環境が無いのでブラウザで出力した際のHTMLおよびJS,CSSファイルを記載願えるかな? あとコード部分は「コードの挿入」ボタンあるからそれ使って囲んで下さい。
YUOKAWARA

2020/09/21 04:44

ご指摘ありがとうございます。 こちらの件事故解決いたしました。 コード記載時は以後気をつけます。 ありがとうございました。
guest

回答1

0

自己解決

自己解決いたしました。

mountedを使用することにより、ページ表示時に作動し、一定間隔でアニメーションが作動する様にできました。

該当部分のみコード記載 <v-col class="welcomeanime"> <v-row justify="center" align="center"> <template> <v-card dark elevation="0" class="welcome"> <transition> <div v-if="this.show"> <v-list class="testwel"> <v-list-item> <v-icon color="yellow">mdi-spin mdi-star</v-icon> <v-list-item-title>テストお客様</v-list-item-title> </v-list-item> </v-list> </div> </transition> </v-card> </template> </v-row> </v-col> <script> export default { layout: 'stream', data: () => ({ show: false, }), methods: { display: function welanime() { console.log('iwehfoiwhe') this.show = true setTimeout(() => { this.show = false }, 1000) this.show = true }, }, mounted() { this.show = true setTimeout(() => { this.show = false }, 1000) this.show = true var wtm = 5000 setInterval(this.display, wtm) }, } </script> <style scoped> /* ウエルカムアクション */ .welcome { background-color: rgba(0, 0, 0, 0); } .v-list-item-title { color: #fff; font-weight: bold; } .show-enter-active { transition: opacity 0.5s; } .show-enter { opacity: 0; } .v-enter-active { transition: all 0.5s ease 0s; } .v-leave-active { transition: all 0.2s ease 0s; } .v-leave-active { position: absolute; } .v-enter, .v-leave-to { opacity: 0; } .v-enter { transform: translateX(40px); } .v-enter-to, .v-leave { transform: translateX(0); } .v-leave-to { transform: translateY(-60px); } .welcomeanime { position: fixed; bottom: 55%; left: 25%; } .testwel { background-color: rgba(0, 255, 255, 0.446); border-radius: 30px; padding: 0; } </style>

投稿2020/09/21 04:58

YUOKAWARA

総合スコア1

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問