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

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

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

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

JavaScript

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

1回答

2008閲覧

JavaScriptで同じアニメーション処理をその都度呼び出したい

退会済みユーザー

退会済みユーザー

総合スコア0

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

JavaScript

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2017/05/10 01:37

###前提・実現したいこと
現在、anime.jsを用いたアニメーション作成を行っています。
何度か使うアニメーション処理をjson形式のデータとして持っておき、必要に応じてアニメーション処理を呼び出したいと思っています。

なので、下記のソースコードのように呼び出したい時に変数として格納していたデータをその都度呼び出して実装しようとしました。
ただ、1回目の呼び出しは問題なく処理が実行されるのですが、2回目以降に呼び出しても処理が行われないまま次のアニメーションが処理されてしまいます。
毎回呼び出そうとしているにも関わらず、1度しか呼び出されない理由が解らずに行き詰っています。
どうすれば何度も使う処理をその都度呼び出せるのでしょうか。
アドバイスお願いします。

###該当のソースコード

HTML

1<!DOCTYPE html lang="ja"> 2 <head> 3 </head> 4 5 <body> 6 <!-- 要素 --> 7 <div class="square"></div> 8 9 <!-- 外部ファイル読込 --> 10 <link rel="stylesheet" href="elements.css" /> 11 <script type="text/javascript" src="anime.min.js"></script> 12 <script type="text/javascript" src="animation.js"></script> 13 </body> 14</html>

CSS

1.square{ 2 position: absolute; 3 width: 50px; 4 height: 50px; 5 background: green; 6}

JavaScript

1//四角のアニメーション 2var basicTimeline = anime.timeline({ 3 loop: true 4}); 5 6//下に移動するアニメーション 2回以上使用する 7var moveDown = [{ 8 targets: ".square", 9 translateX: "+=0", 10 translateY: "+=100", 11 duration: 500, 12}]; 13 14basicTimeline 15 //右に移動 16 .add({ 17 targets: ".square", 18 translateX: "+=100", 19 translateY: "+=0", 20 duration: 500, 21 }) 22 //下に移動 23 .add(moveDown) 24 25 //左に移動 26 .add({ 27 targets: ".square", 28 translateX: "-=100", 29 translateY: "+=0", 30 duration: 500, 31 }) 32 33 //下に移動 34 .add(moveDown);

###補足情報(言語/FW/ツール等のバージョンなど)
anime.jsライブラリを使用しています。

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

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

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

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

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

guest

回答1

0

ベストアンサー

対処:

.add(moveDown) を .add(moveDown[0])

もしくは

var moveDown = [{ targets: ".square", translateX: "+=0", translateY: "+=100", duration: 500, }]; を var moveDown = { targets: ".square", translateX: "+=0", translateY: "+=100", duration: 500, };

原因:
var moveDown = [{定義}]
配列の中に、オブジェクト形式で定義をしているが利用する際には
ラップしている配列をそのまま利用しているためではないかと。

投稿2017/05/10 02:10

kanimaru

総合スコア1013

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

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

退会済みユーザー

退会済みユーザー

2017/05/15 00:37

有難うございます。 無事に処理を繰り返し使うことが出来ました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問