質問編集履歴

1

制作したページのコード等を記載修正

2017/05/17 07:07

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -23,3 +23,341 @@
23
23
 
24
24
 
25
25
  のような仕様にしたいと考えています。
26
+
27
+
28
+
29
+ 下記コードで上記URLと同じようなページ作成をまず行ったのですが、
30
+
31
+ 作成した両ページとも白紙のページに戻るボタンだけ表示されている状態です。
32
+
33
+
34
+
35
+ index.html
36
+
37
+ ```html
38
+
39
+ <!DOCTYPE html>
40
+
41
+ <html>
42
+
43
+ <head>
44
+
45
+ <meta charset="UTF-8" />
46
+
47
+ <title>japanmapを使用した日本地図選択</title>
48
+
49
+ <link rel="stylesheet" href="japanmap.css">
50
+
51
+ <script type="text/javascript" src="https://code.jquery.com/jquery-1.12.1.min.js"></script>
52
+
53
+ <script type="text/javascript" src="jquery.japan-map.min.js"></script>
54
+
55
+
56
+
57
+ </head>
58
+
59
+ <body>
60
+
61
+ <iframe id="map" src="map.html?canvasWidth=800" frameborder="0" scrolling="no"></iframe>
62
+
63
+ <script>
64
+
65
+ $(function(){
66
+
67
+
68
+
69
+ var $mapObj = $("#map");
70
+
71
+ $mapObj.on("load", function(){
72
+
73
+ // iframe読み込み後、iframe内のcanvasのサイズを取得し、iframeのサイズを設定する
74
+
75
+ var $iframeCanvas = $('iframe:first').contents().find("#japan-map-container > canvas");
76
+
77
+ $mapObj.attr({
78
+
79
+ width : $iframeCanvas.attr("width"),
80
+
81
+ height : $iframeCanvas.attr("height")
82
+
83
+ });
84
+
85
+ });
86
+
87
+ });
88
+
89
+ </script>
90
+
91
+ </body>
92
+
93
+ </html>
94
+
95
+
96
+
97
+ ```
98
+
99
+
100
+
101
+ map.html
102
+
103
+ ```html
104
+
105
+ <!DOCTYPE html>
106
+
107
+ <html>
108
+
109
+ <head>
110
+
111
+ <meta charset="UTF-8" />
112
+
113
+ <title>2段階選択式の日本地図</title>
114
+
115
+ <link rel="stylesheet" href="japanmap.css">
116
+
117
+ <script type="text/javascript" src="https://code.jquery.com/jquery-1.12.1.min.js"></script>
118
+
119
+ <script type="text/javascript" src="jquery.japan-map.min.js"></script>
120
+
121
+ <script>
122
+
123
+ $(function(){
124
+
125
+
126
+
127
+ var $mapContainer = $(document).find("#japan-map-container");
128
+
129
+ var canvasWidth = _getUrlParams()['canvasWidth'] && $.isNumeric(_getUrlParams()['canvasWidth']) ? _getUrlParams()['canvasWidth'] : 800;
130
+
131
+ var mapWidth = null;
132
+
133
+ var mapHeight = null;
134
+
135
+ var backgroundPrefColor = "#ababab";
136
+
137
+
138
+
139
+ /*
140
+
141
+ * 2段階選択式の日本地図を表示する
142
+
143
+ */
144
+
145
+ _initJapanMap();
146
+
147
+ function _initJapanMap() {
148
+
149
+ $("#japan-map-back-btn").hide();
150
+
151
+ $mapContainer.empty().japanMap({
152
+
153
+ areas: [
154
+
155
+ {code : 1, name: "北海道", color: "#7f7eda", hoverColor: "#b3b2ee", prefectures: [1]},
156
+
157
+ {code : 2, name: "東北地方", color: "#759ef4", hoverColor: "#98b9ff", prefectures: [2,3,4,5,6,7]},
158
+
159
+ {code : 3, name: "関東地方", color: "#7ecfea", hoverColor: "#b7e5f4", prefectures: [8,9,10,11,12,13,14]},
160
+
161
+ {code : 4, name: "中部地方", color: "#7cdc92", hoverColor: "#aceebb", prefectures: [15,16,17,18,19,20,21,22,23]},
162
+
163
+ {code : 5, name: "関西地方", color: "#ffe966", hoverColor: "#fff19c", prefectures: [24,25,26,27,28,29,30]},
164
+
165
+ {code : 6, name: "中国地方", color: "#ffcc66", hoverColor: "#ffe0a3", prefectures: [31,32,33,34,35]},
166
+
167
+ {code : 7, name: "四国地方", color: "#fb9466", hoverColor: "#ffbb9c", prefectures: [36,37,38,39]},
168
+
169
+ {code : 8, name: "九州地方", color: "#ff9999", hoverColor: "#ffbdbd", prefectures: [40,41,42,43,44,45,46]},
170
+
171
+ {code : 9, name: "沖縄", color: "#eb98ff", hoverColor: "#f5c9ff", prefectures: [47]},
172
+
173
+ ],
174
+
175
+ movesIslands : true,
176
+
177
+ borderLineWidth: 0,
178
+
179
+ width: canvasWidth,
180
+
181
+ onSelect:function(data){
182
+
183
+ switch (data.code){
184
+
185
+
186
+
187
+ // 北海道
188
+
189
+ case 1:
190
+
191
+ $mapContainer.empty().japanMap({
192
+
193
+ areas: [
194
+
195
+ {code : 1, name: "北海道", color: "#7f7eda", hoverColor: "#b3b2ee", prefectures: [1]},
196
+
197
+ {name: "", color: backgroundPrefColor, hoverColor: backgroundPrefColor, prefectures: [2,3,5]},
198
+
199
+ ],
200
+
201
+ width: canvasWidth * 2.5,
202
+
203
+ onSelect:function(data){
204
+
205
+ _sendData(data);
206
+
207
+ }
208
+
209
+ });
210
+
211
+ $mapContainer.find("canvas").css({"top": mapHeight * 0.15, "left": 0 - (mapWidth * 1.55)});
212
+
213
+ $("#japan-map-back-btn").show();
214
+
215
+ break;
216
+
217
+
218
+
219
+ // 東北
220
+
221
+ case 2:
222
+
223
+ $mapContainer.empty().japanMap({
224
+
225
+ areas: [
226
+
227
+ {code : 2, name: "青森県", color: "#759ef4", hoverColor: "#98b9ff", prefectures: [2]},
228
+
229
+ {code : 3, name: "岩手県", color: "#759ef4", hoverColor: "#98b9ff", prefectures: [3]},
230
+
231
+ {code : 4, name: "宮城県", color: "#759ef4", hoverColor: "#98b9ff", prefectures: [4]},
232
+
233
+ {code : 5, name: "秋田県", color: "#759ef4", hoverColor: "#98b9ff", prefectures: [5]},
234
+
235
+ {code : 6, name: "山形県", color: "#759ef4", hoverColor: "#98b9ff", prefectures: [6]},
236
+
237
+ {code : 7, name: "福島県", color: "#759ef4", hoverColor: "#98b9ff", prefectures: [7]},
238
+
239
+ {name: "", color: backgroundPrefColor, hoverColor: backgroundPrefColor, prefectures: [1,8,9,10,11,15,16,17,18,20,21]},
240
+
241
+ ],
242
+
243
+ width: canvasWidth * 2.8,
244
+
245
+ onSelect:function(data){
246
+
247
+ _sendData(data);
248
+
249
+ }
250
+
251
+ });
252
+
253
+ $mapContainer.find("canvas").css({"top": 0 - mapHeight * 0.55, "left": 0 - (mapWidth * 1.65)});
254
+
255
+ $("#japan-map-back-btn").show();
256
+
257
+ break;
258
+
259
+
260
+
261
+
262
+
263
+
264
+
265
+ },
266
+
267
+ });
268
+
269
+
270
+
271
+ // 初回のみ実施
272
+
273
+ if (mapWidth == null && mapHeight == null) {
274
+
275
+ mapWidth = $mapContainer.find("canvas").attr("width");
276
+
277
+ mapHeight = $mapContainer.find("canvas").attr("height");
278
+
279
+ $mapContainer.css({"width": mapWidth, "max-width": mapWidth, "height": mapHeight, "max-height": mapHeight});
280
+
281
+ }
282
+
283
+ }
284
+
285
+
286
+
287
+ /*
288
+
289
+ * 都道府県選択時のデータ送信処理
290
+
291
+ */
292
+
293
+ function _sendData(data) {
294
+
295
+ if (data.code) {
296
+
297
+ window.parent.location.href = "/pref/" + data.code + "/";
298
+
299
+ }
300
+
301
+ }
302
+
303
+
304
+
305
+ /*
306
+
307
+ * getパラメータを取得
308
+
309
+ */
310
+
311
+ function _getUrlParams() {
312
+
313
+ var vars = [], hash;
314
+
315
+ var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
316
+
317
+ for (var i = 0; i < hashes.length; i++) {
318
+
319
+ hash = hashes[i].split('=');
320
+
321
+ vars.push(hash[0]);
322
+
323
+ vars[hash[0]] = hash[1];
324
+
325
+ }
326
+
327
+ return vars;
328
+
329
+ }
330
+
331
+
332
+
333
+ /*
334
+
335
+ * 戻るボタンクリック時の全国マップ表示処理
336
+
337
+ */
338
+
339
+ $("#japan-map-back-btn").on("click", function(){
340
+
341
+ _initJapanMap();
342
+
343
+ });
344
+
345
+ });
346
+
347
+ </script>
348
+
349
+ </head>
350
+
351
+ <body>
352
+
353
+ <div id="japan-map-container"></div>
354
+
355
+ <input type="button" value="&lt;&lt;戻る" id="japan-map-back-btn"/>
356
+
357
+ </body>
358
+
359
+ </html>
360
+
361
+
362
+
363
+ ```