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

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

新規登録して質問してみよう
ただいま回答率
85.47%
jQueryプラグイン

jQueryの拡張機能。 様々な種類があり、その数は膨大です。公開済みのプラグインの他にも、自作することもできます。 jQueryで利用できるようにしておくだけで、導入およびカスタマイズが比較的容易に行なえます。

JavaScript

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

Q&A

解決済

1回答

2541閲覧

particles.jsをclassで複数設置する方法

massa0413

総合スコア12

jQueryプラグイン

jQueryの拡張機能。 様々な種類があり、その数は膨大です。公開済みのプラグインの他にも、自作することもできます。 jQueryで利用できるようにしておくだけで、導入およびカスタマイズが比較的容易に行なえます。

JavaScript

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

1グッド

0クリップ

投稿2018/06/19 12:22

編集2018/06/20 02:29

particles.jsというライブラリを使って幾何学模様のアニメーションを実装しているのですが、
上記ライブラリを以下のように使用する方法が分からずに困っています

有識者の方にお助けいただければ幸いです。

実現したい仕様
・idではなくclassを指定した箇所に実装したい

以下、ソースになります
よろしくお願いいたします!

【現状】

HTML

1 <body> 2 <div id="mv"> 3 <div id="particles-js"></div> 4 <div class="wrap"></div> 5 </div> 6 <!-- /#mv --> 7 8 <div id="sec01"> 9 <div class="wrap"> 10 </div> 11 </div><!-- /#sec01 --> 12 13 <script src="/js/particles.js"></script> 14 </body> 15

↓ ↓ ↓ ↓ ↓
【希望例】

html

1 <body> 2 <div id="mv"> 3 <div class="particles-js1"></div><!-- ここで使用 --> 4 <div class="wrap"></div> 5 </div> 6 <!-- /#mv --> 7 8 <div id="sec01"> 9 <div class="particles-js2"></div><!-- ここで使用 --> 10 <div class="wrap"></div> 11 </div><!-- /#sec01 --> 12 13 <div id="sec02"> 14 <div class="particles-js3"></div><!-- ここで使用 --> 15 <div class="wrap"></div> 16 </div><!-- /#sec02 --> 17 18 <script src="/js/particles.js"></script> 19 </body> 20<!-- できればこのようにいくつでも使用できるようにしたいです --> 21

jsのソースは、質問の文字数制限でソースを貼れなかったのでparticles.jsを使用した他人様のページをご参照ください
※内容は私が使用しているものと全く同じです

particles.js参考

ライブラリ公式ページ
https://vincentgarreau.com/particles.js/

ライブラリ紹介記事
https://liginc.co.jp/191958
https://on-ze.com/archives/4406


以下2点、自分で試してみたことです

1)上記ソース1493行目の
document.getElementById(tag_id)
をidでなくclassで取得すればどうかと思い

document.getElementsByClassName(tag_id)
に変えたのですが

1495行目でClassNameが取得できないとエラーが出て上手くいきません。

【上記ソース1493~1495行】

javascript

1 /* pJS elements */ 2 var pJS_tag = document.getElementById(tag_id), 3 pJS_canvas_class = 'particles-js-canvas-el', 4 exist_canvas = pJS_tag.getElementsByClassName(pJS_canvas_class);

2)id名でしか使えないのであればparticles.jsをコピーしてファイル名を変えて複数のidに分けて実装(<div id="particles-js"><div id="particles-js2">という具合で)しましたが

これもうまくいきませんでした。
(そもそもこの方法だとページが重たくなるのであまり現実的ではないと考えています…)


以上、初歩的な質問内容で申し訳ありませんが
何卒よろしくお願いいたします!

yuyauver98👍を押しています

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

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

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

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

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

m.ts10806

2018/06/20 00:36

ライブラリはプラグイン公式ページまたは紹介している記事をご提示ください。
m.ts10806

2018/06/20 00:42

質問を編集してください。こちらのコメント欄はデフォルトでは非表示のため、他の回答者の目に付かない可能性が高くなります。
massa0413

2018/06/20 02:29

ありがとうございます!質問を編集いたしました!
guest

回答1

0

ベストアンサー

particlesJS()を使用できる準備が出来ているなら、(particles.js読んでるので準備は出来ているはず)
particlesJS(要素id,params)をコールすればいくつでも配置できるけど

このライブラリの内部構造自体が、particlesJSもpJSも要素のidを引数にして動作してるので、idを使わずにと言うのは無理な気がする

2)id名でしか使えないのであれば ...略...(そもそもこの方法だとページが重たくなるのであまり現実的ではないと考えています…)

重たくなるとはどういった意味ですか?
「id="particles-js2"」の文字数?
「particlesJS()の多数配置」による計算負荷?
目標としている事が後者なので後者はないとすると文字数なのかな、classとidが違うだけで文字数って事でも無い気がするんだけど

ちなみに、複数配置する場合でもparticles.jsはひとつだけで構わないです。
particlesJS()をコールすると内部でnewしてくれるので

投稿2018/06/28 19:22

efcode

総合スコア422

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

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

massa0413

2018/07/02 13:31

ご回答ありがとうございます。 また、伝わりづらい質問内容で失礼しました。 ご指摘の通りid,paramsをコールすることで複数設置できました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問