回答編集履歴

1

メニューの数を可変にし、円周上に乗るように修正

2015/04/07 06:58

投稿

kiri
kiri

スコア74

test CHANGED
@@ -105,3 +105,139 @@
105
105
  </html>
106
106
 
107
107
  ```
108
+
109
+
110
+
111
+ 追記します。先ほど操作をあやまって空の回答をしてしまいました、すみません。
112
+
113
+ var num がメニューの数を表しており、円周上になるように調整してみました。あとの細かい調整はしてみてください。
114
+
115
+ ```lang-html
116
+
117
+ <html>
118
+
119
+ <head>
120
+
121
+ <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js" type="text/javascript"></script>
122
+
123
+ <script>
124
+
125
+ var flg = false;
126
+
127
+ var num = 5;
128
+
129
+ $(document).ready(function() {
130
+
131
+ $('#menu').click(function() {
132
+
133
+ if (flg == false) {
134
+
135
+ $('#menus').css('visibility','visible');
136
+
137
+ var obj_rad = Math.ceil(180 / num);
138
+
139
+ var left = 0;
140
+
141
+ var top = 0;
142
+
143
+ var origin = -80;
144
+
145
+ for (var i = 0; i < num; i++) {
146
+
147
+ left = Math.cos((origin + (obj_rad * i)) * (Math.PI / 180)) * 100;
148
+
149
+ if (left < 0) left = 10;
150
+
151
+
152
+
153
+ top = Math.sin((origin + (obj_rad * i)) * (Math.PI / 180)) * 100;
154
+
155
+ $('#menu_'+i).animate({marginLeft:left+"px",top:top+"px"}, 1500);
156
+
157
+ }
158
+
159
+
160
+
161
+ flg = true;
162
+
163
+ }
164
+
165
+ else {
166
+
167
+ for (var i = 0; i < num; i++) {
168
+
169
+ $('#menu_'+i).animate({marginLeft:"0px",top:"0px"}, 0);
170
+
171
+ }
172
+
173
+ $('#menus').css('visibility','hidden');
174
+
175
+ flg = false;
176
+
177
+
178
+
179
+ }
180
+
181
+ });
182
+
183
+ });
184
+
185
+ </script>
186
+
187
+ </head>
188
+
189
+ <body>
190
+
191
+ <div id="menu_box" style="position:fixed;top:100px;">
192
+
193
+ <a id="menu">Menu</a>
194
+
195
+ <div id="menus" style="visibility:hidden;position:relative;">
196
+
197
+ <a href="#aa" id="menu_0" style="position:absolute;">
198
+
199
+ aa
200
+
201
+ </a>
202
+
203
+ <a href="#bb" id="menu_1" style="position:absolute;">
204
+
205
+ bb
206
+
207
+ </a>
208
+
209
+ <a href="#cc" id="menu_2" style="position:absolute;">
210
+
211
+ cc
212
+
213
+ </a>
214
+
215
+ <a href="#dd" id="menu_3" style="position:absolute;">
216
+
217
+ dd
218
+
219
+ </a>
220
+
221
+ <a href="#ee" id="menu_4" style="position:absolute;">
222
+
223
+ ee
224
+
225
+ </a>
226
+
227
+ </div>
228
+
229
+ </div>
230
+
231
+ <div style="height:1000px; width:100%;">
232
+
233
+ <div style="margin: 0 auto; text-align:center;">
234
+
235
+ </div>
236
+
237
+ </div>
238
+
239
+ </body>
240
+
241
+ </html>
242
+
243
+ ```