質問編集履歴

1

setTimeoutに変更しました。

2020/05/13 03:49

投稿

daichi-onoue
daichi-onoue

スコア53

test CHANGED
File without changes
test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  CSSアニメーションを5秒後に消したい。
6
6
 
7
- JavaScriptで、sleepとdivのclass削除で行なっている。
7
+ JavaScriptで、setTimeoutとdivのclass削除で行なっている。
8
8
 
9
9
 
10
10
 
@@ -370,23 +370,57 @@
370
370
 
371
371
 
372
372
 
373
+
374
+
373
- function firstscript(waitMsec) {
375
+ function firstscript() {
376
+
377
+
378
+
374
-
379
+ function sleep(waitSec, callbackFunc) {
380
+
381
+
382
+
375
-
383
+ var spanedSec = 0;
376
-
384
+
385
+
386
+
377
- var startMsec = new Date();
387
+ var waitFunc = function () {
378
-
379
-
380
-
388
+
389
+
390
+
381
- // 指定ミリ秒間だけループさせる(CPUは常にビジー状態)
391
+ spanedSec++;
382
-
392
+
393
+
394
+
383
- while (new Date() - startMsec < waitMsec);
395
+ if (spanedSec >= waitSec) {
396
+
384
-
397
+ if (callbackFunc) callbackFunc();
398
+
399
+ return;
400
+
385
- }
401
+ }
402
+
403
+
404
+
386
-
405
+ clearTimeout(id);
406
+
387
-
407
+ id = setTimeout(waitFunc, 1000);
408
+
409
+
410
+
388
-
411
+ };
412
+
413
+
414
+
415
+ var id = setTimeout(waitFunc, 1000);
416
+
417
+
418
+
419
+ }
420
+
421
+
422
+
389
- sleep(5000);
423
+ sleep(5, function() {
390
424
 
391
425
 
392
426
 
@@ -402,13 +436,15 @@
402
436
 
403
437
 
404
438
 
405
-
439
+ alert('ページの読み込みが完了したよ!');
406
-
407
-
408
-
440
+
441
+
442
+
409
- }
443
+ }
444
+
410
-
445
+ });
446
+
411
-
447
+ // ページの読み込み完了と同時に実行されるよう指定
412
448
 
413
449
  window.onload = firstscript;
414
450
 
@@ -416,6 +452,8 @@
416
452
 
417
453
  </script>
418
454
 
455
+ <h1>1234567890</h1>
456
+
419
457
 
420
458
 
421
459
  ```
@@ -426,6 +464,6 @@
426
464
 
427
465
 
428
466
 
429
- sleepを使用しない時は、正常に削除されて、
467
+ setTimeoutを使用しない時は、正常に削除されて、
430
-
468
+
431
- 表示されないため、sleepに問題があると思われる。
469
+ 表示されないため、setTimeoutに問題があると思われる。