回答編集履歴

1

追記

2016/11/11 03:27

投稿

yambejp
yambejp

スコア114883

test CHANGED
@@ -1,3 +1,123 @@
1
1
  具体的なanimate処理のトリガーと実行を例示してください
2
2
 
3
3
  またスピードはミリ秒単位で指示してください
4
+
5
+
6
+
7
+ #追記
8
+
9
+ 以下、一定時間waitをかけるサンプルを提示します。
10
+
11
+ わかりやすいようにトリガーになるdivに色をつけてあります。
12
+
13
+ 赤いボタンを押すと水色に変わり水色の間はボタンを押せません。
14
+
15
+ 一定時間立つと水色から赤に戻ります。
16
+
17
+ speed(ミリ秒)とratio(経過した比率)でスピードは調整してください
18
+
19
+
20
+
21
+ ```HTML
22
+
23
+ <style type="text/css">
24
+
25
+ #button {
26
+
27
+ float: left;
28
+
29
+ background-color: red;
30
+
31
+ height: 50px;
32
+
33
+ width: 50px;
34
+
35
+ }
36
+
37
+ #ani {
38
+
39
+ float: left;
40
+
41
+ background-color: silver;
42
+
43
+ height: 50px;
44
+
45
+ width: 500px;
46
+
47
+ }
48
+
49
+ </style>
50
+
51
+ <script src="js/jquery.js"></script> <!--ライブラリは適当に-->
52
+
53
+ <script>
54
+
55
+ $(function(){
56
+
57
+ var speed=1000;
58
+
59
+ var ratio=0.8;
60
+
61
+ var flg=true;
62
+
63
+ $('#button').on('click',function(){
64
+
65
+ if(flg==false) return false;
66
+
67
+ $.when(
68
+
69
+ setTimeout(function(){
70
+
71
+ $('#ani').animate( { width: 'toggle',}, { duration: speed, easing: 'swing', } );
72
+
73
+ $('#button').css({"background-Color":"aqua"});
74
+
75
+ flg=false;
76
+
77
+ },0),
78
+
79
+ wait(speed*ratio))
80
+
81
+ .done(
82
+
83
+ function(){
84
+
85
+ flg=true;
86
+
87
+ $('#button').css({"background-Color":"red"})
88
+
89
+ }
90
+
91
+ )
92
+
93
+ });
94
+
95
+ });
96
+
97
+ function wait(speed) {
98
+
99
+ var d = $.Deferred();
100
+
101
+ setTimeout(function(){d.resolve();}, speed);
102
+
103
+ return d.promise();
104
+
105
+ }
106
+
107
+ </script>
108
+
109
+ <div id="button"></div>
110
+
111
+ <div id="ani" style="display: block;"></div>
112
+
113
+ <div style="clear: both;"></div>
114
+
115
+
116
+
117
+ ```
118
+
119
+ ただしanimateが終わる前にwait処理が終わるので
120
+
121
+ 徐々にボタンが押せるタイミングが速くなってきます
122
+
123
+ 仕様は悩みどころですね・・・