回答編集履歴
1
追記
answer
CHANGED
@@ -1,2 +1,62 @@
|
|
1
1
|
具体的なanimate処理のトリガーと実行を例示してください
|
2
|
-
またスピードはミリ秒単位で指示してください
|
2
|
+
またスピードはミリ秒単位で指示してください
|
3
|
+
|
4
|
+
#追記
|
5
|
+
以下、一定時間waitをかけるサンプルを提示します。
|
6
|
+
わかりやすいようにトリガーになるdivに色をつけてあります。
|
7
|
+
赤いボタンを押すと水色に変わり水色の間はボタンを押せません。
|
8
|
+
一定時間立つと水色から赤に戻ります。
|
9
|
+
speed(ミリ秒)とratio(経過した比率)でスピードは調整してください
|
10
|
+
|
11
|
+
```HTML
|
12
|
+
<style type="text/css">
|
13
|
+
#button {
|
14
|
+
float: left;
|
15
|
+
background-color: red;
|
16
|
+
height: 50px;
|
17
|
+
width: 50px;
|
18
|
+
}
|
19
|
+
#ani {
|
20
|
+
float: left;
|
21
|
+
background-color: silver;
|
22
|
+
height: 50px;
|
23
|
+
width: 500px;
|
24
|
+
}
|
25
|
+
</style>
|
26
|
+
<script src="js/jquery.js"></script> <!--ライブラリは適当に-->
|
27
|
+
<script>
|
28
|
+
$(function(){
|
29
|
+
var speed=1000;
|
30
|
+
var ratio=0.8;
|
31
|
+
var flg=true;
|
32
|
+
$('#button').on('click',function(){
|
33
|
+
if(flg==false) return false;
|
34
|
+
$.when(
|
35
|
+
setTimeout(function(){
|
36
|
+
$('#ani').animate( { width: 'toggle',}, { duration: speed, easing: 'swing', } );
|
37
|
+
$('#button').css({"background-Color":"aqua"});
|
38
|
+
flg=false;
|
39
|
+
},0),
|
40
|
+
wait(speed*ratio))
|
41
|
+
.done(
|
42
|
+
function(){
|
43
|
+
flg=true;
|
44
|
+
$('#button').css({"background-Color":"red"})
|
45
|
+
}
|
46
|
+
)
|
47
|
+
});
|
48
|
+
});
|
49
|
+
function wait(speed) {
|
50
|
+
var d = $.Deferred();
|
51
|
+
setTimeout(function(){d.resolve();}, speed);
|
52
|
+
return d.promise();
|
53
|
+
}
|
54
|
+
</script>
|
55
|
+
<div id="button"></div>
|
56
|
+
<div id="ani" style="display: block;"></div>
|
57
|
+
<div style="clear: both;"></div>
|
58
|
+
|
59
|
+
```
|
60
|
+
ただしanimateが終わる前にwait処理が終わるので
|
61
|
+
徐々にボタンが押せるタイミングが速くなってきます
|
62
|
+
仕様は悩みどころですね・・・
|