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

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

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

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

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

Q&A

解決済

2回答

252閲覧

画像ギャラリーで画像を切り替えていくと次第に重くなる

ryoo_chksl

総合スコア69

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

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

0グッド

0クリップ

投稿2018/11/24 01:51

編集2018/11/24 02:28

こちらの画像ギャラリーとこちらの画像ギャラリーはみためは同じですがコードが少し違います。前者は画像が快適に切り替わります。しかし、後者は次第に重くなっていきついに何の反応もしなくなってしまいます。

この原因を教えていただきたいです。

後者は前者のコードを少し変更したものです。
変更点

  • htmlからmodalSentenceクラスのpタグを削除し、そのpタグはJS上で作るようにした
  • 下のコードを追加

js

1while(modalContainer[0].firstChild) modalContainer[0].removeChild(modalContainer[0].firstChild);
  • modalAppear関数の中にあるif文を変更

ーー追記ーー
表示環境

CPU:Core(TM) i7-8750H
メモリ:32GB(31.8GB使用可能)
ブラウザ:Chrome
Chromeバージョン:70.0.3538.102(Official Build) (64 ビット)
OS:Windows 10 Home

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2018/11/24 02:17 編集

ご覧になった環境(CPUやメモリ、ブラウザの種類やOS・ブラウザのバージョン等も載せていただけませんか? 当方の手持ちの環境ではそのような挙動がなかったもので...(iPhoneでしかまだ見てませんが)
ryoo_chksl

2018/11/24 02:29

環境を質問文本文下に追記しました。書き方がよく分からなかったのですが、あの書き方でよかったでしょうか?
退会済みユーザー

退会済みユーザー

2018/11/24 02:38

大丈夫です
guest

回答2

0

ベストアンサー

後者はmodalAppear関数を再帰していますが、その度にclickイベントが登録されていくので、modalAppear関数の呼び出し回数が2回、4回、8回……と倍々に増えていくと思います。


失礼、再帰と呼ぶべきじゃないですね。clickイベント内でmodalAppear関数が呼ばれ、その中でまた自身を呼び出すclickイベントが登録されているので、倍々に増えていく、というのが正しいかもです。

投稿2018/11/24 02:55

編集2018/11/24 02:59
Lhankor_Mhy

総合スコア36115

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

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

ryoo_chksl

2018/11/24 03:50

前者のように、clickをしたときに画像のソースとタイトルを1つずつ変えるのではなく、まとめて変えたいです。 コードをどのようにかんぜんすればいいでしょうか?
Lhankor_Mhy

2018/11/24 04:11 編集

『まとめて変えたい』の意味を読み取れませんでした。 もう少し、具体的にお願いいたします。
guest

0

modalContainerクラスのdivタグの中身を作る部分のコードを別関数に入れ、それをif文で呼び出したらできました

投稿2018/11/24 04:51

ryoo_chksl

総合スコア69

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問