回答編集履歴

1

調整

2018/10/16 08:02

投稿

yambejp
yambejp

スコア114843

test CHANGED
@@ -47,3 +47,97 @@
47
47
  </script>
48
48
 
49
49
  ```
50
+
51
+
52
+
53
+ # プログレスバー付き
54
+
55
+ 読み込み状況によって進捗をあげる必要がありますが、概ねこんな感じです
56
+
57
+ 実際には非同期での部品の呼び出しを$.whenに列記すると
58
+
59
+ すべての非同期処理をまってdoneされるような流れになると思います
60
+
61
+ 実際に実装してみてわからなければ聞いてください
62
+
63
+ ```javascript
64
+
65
+ <link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css" />
66
+
67
+ <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
68
+
69
+ <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
70
+
71
+ <script>
72
+
73
+ $(function(){
74
+
75
+ var d1=$('<div>').css({"position":"absolute","background-Color":"yellow","height":"50%","width":"100%","top":"0px","left":"0px","z-index":"3"});
76
+
77
+ var d2=d1.clone().css({"top":"50%"});
78
+
79
+ d1.appendTo('body');
80
+
81
+ d2.appendTo('body');
82
+
83
+ var d = $.Deferred();
84
+
85
+ var count=0;
86
+
87
+ var progressbar = $( "#progressbar" ).css({top:"50%",position:"absolute",width:"99%","z-index":"4","background-Color":"gray"});
88
+
89
+ var progressLabel = $( ".progress-label" ).css({float:"left","margin-left":"50%","margin-top":"5px","font-weight":"bold","text-shadow":"1px 1px 0 #fff"});
90
+
91
+ var timerId=0;
92
+
93
+ $.when(
94
+
95
+ d.promise(timerId=setInterval(function(){
96
+
97
+ progressbar.progressbar({
98
+
99
+ value: (count+1)*10,
100
+
101
+ change: function() {
102
+
103
+ progressLabel.text( progressbar.progressbar( "value" ) + "%" );
104
+
105
+ },
106
+
107
+ create:function(event, ui){
108
+
109
+ $(this).find('.ui-widget-header').css({'background-color':'aqua'});
110
+
111
+ }
112
+
113
+ });
114
+
115
+ if(count>=10){
116
+
117
+ clearInterval(timerId);
118
+
119
+ d.resolve();
120
+
121
+ }
122
+
123
+ count++;
124
+
125
+ },300))
126
+
127
+ ).done(function(){
128
+
129
+ progressbar.remove();
130
+
131
+ d1.hide("slide", {direction: "up"}, 1000);
132
+
133
+ d2.hide("slide", {direction: "down"}, 1000)
134
+
135
+ });
136
+
137
+ });
138
+
139
+ </script>
140
+
141
+ <div id="progressbar"><div class="progress-label">Loading...</div></div>
142
+
143
+ ```