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

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

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

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

Q&A

解決済

2回答

3556閲覧

ローディング完了後、ローディング要素を削除したい。

koh1990

総合スコア15

JavaScript

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

0グッド

0クリップ

投稿2018/11/28 16:06

編集2018/11/28 16:43

ローディング画面でローディング完了後、その要素を削除したいのですがうまくいきません。
どなたかご教授ください。

javascript

1window.addEventListener('load', function() { 2 3 var loadingAnim = document.getElementById('#loadingAnim'), 4 body = document.body; 5 6 setTimeout( function(){ 7 8 body.classList.add('loaded'); 9 10 // ここから 11 loadingAnim.querySelectorAll('.loadingAnim_line').addEventListener('transitionend', function( e ){ 12 (this).parentNode.removeChild(this); 13 }); 14     // ここまでの部分 15 }, 1000 ); 16});

HTML

1<body> 2 <!-- ここの部分を削除したい --> 3 <div id="loadingAnim" class="loadingAnim"><i class="loadingAnim_line"></i></div> 4 <!-- ここの部分を削除したい --> 5 6 <header class="index"> 7 <h1 class="index_wow">Wow!</h1> 8 <span class="index_description">that was surprised.</span> 9 </header> 10 <p class="linkto"><a href="http://satohmsys.info">Go to developer's blog</a></p> 11</body>

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

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

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

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

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

guest

回答2

0

自己解決

自分のやりたいことはこれで実現できました!
ご指摘ありがとうございました!!

javascript

1window.addEventListener('load', function() { 2 3 var loadingAnim = document.getElementById('loadingAnim'), 4 body = document.body; 5 6 setTimeout( function(){ 7 8 body.classList.add('loaded'); 9 10 // アニメ完了後にDOM削除 11 loadingAnim.addEventListener('transitionend', function( e ){ 12 loadingAnim.remove(); 13 }); 14 15 }, 1000 ); 16});

投稿2018/11/28 17:34

koh1990

総合スコア15

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

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

0

setTimeoutは何か別の処理なのでしょうか。そうでなければtransitionendイベントを登録する場所の問題のように思います。(1000ミリ秒後に既にtransitionが終了しており、イベントが終わった後なのでは)

js

1window.addEventListener('load', function() { 2 3 var loadingAnim = document.getElementById('#loadingAnim'), 4 body = document.body; 5 6 loadingAnim.querySelectorAll('.loadingAnim_line').addEventListener('transitionend', function( e ){ 7 (this).parentNode.removeChild(this); 8 }); 9 10 setTimeout( function(){ 11 12 body.classList.add('loaded'); 13 14 }, 1000 ); 15});

transitionendイベントでフラグを立てて、setTimeoutでもフラグを立てて、両方立っていたら削除するようにしてみてはいかがでしょうか。

投稿2018/11/28 16:16

kei344

総合スコア69407

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

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

koh1990

2018/11/28 16:44

説明不足でした。 HTMLを追加しましたが、.loadingAnim_lineの親である#loadingAnimを削除したかったのです。 どうすればよいでしょうか?
kei344

2018/11/28 16:50

loadingAnim.parentNode.removeChild( loadingAnim ); かな。
kei344

2018/11/28 17:05

あ、document.getElementById('#loadingAnim')になっていますね。 document.getElementById( 'loadingAnim' );です。「#」はいりません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問