回答編集履歴

1

追記

2018/11/01 07:30

投稿

taka-saan
taka-saan

スコア665

test CHANGED
@@ -5,3 +5,83 @@
5
5
 
6
6
 
7
7
  (それでは実現できないということでしょうか?)
8
+
9
+
10
+
11
+ > ざっと調べた感じ、次のように書けばいいかなと思いましたがこれではできませんでした。
12
+
13
+
14
+
15
+ var をつけるとローカル変数になってしまうので外に出して、こんな感じです。
16
+
17
+
18
+
19
+ ```
20
+
21
+ var action1=null;
22
+
23
+ var action2=null;
24
+
25
+ var action3=null;
26
+
27
+
28
+
29
+ // hello表示アクション
30
+
31
+ function Action(){
32
+
33
+ action1 = setTimeout(function(){
34
+
35
+ $('.hello').fadeIn();
36
+
37
+ },500);
38
+
39
+ action2 = setTimeout(function(){
40
+
41
+ $('.hello').fadeOut();
42
+
43
+ },2000);
44
+
45
+ action3 = setTimeout(function(){
46
+
47
+ $('.modal').css('display','none');
48
+
49
+ },2500);
50
+
51
+ }
52
+
53
+
54
+
55
+ // openクリックでhelloを表示
56
+
57
+ $(".open").on("click", function(){
58
+
59
+ $('.modal').css('display','flex');
60
+
61
+ Action();
62
+
63
+ });
64
+
65
+
66
+
67
+ // modalの全体クリックでmodalもHelloも非表示
68
+
69
+ $(".modal").on("click", function(){
70
+
71
+ $('.modal').css('display','none');
72
+
73
+ $('.hello').css('display','none');
74
+
75
+ /* ここでActionのsettimeoutを中断させたい */
76
+
77
+
78
+
79
+ if( action1 ) clearTimeout(action1);
80
+
81
+ if( action2 ) clearTimeout(action2);
82
+
83
+ if( action3 ) clearTimeout(action3);
84
+
85
+ });
86
+
87
+ ```