openfree commited on
Commit
c5fd803
ยท
verified ยท
1 Parent(s): 117395e

Update index.html

Browse files
Files changed (1) hide show
  1. index.html +100 -58
index.html CHANGED
@@ -10,22 +10,51 @@
10
  margin: 0;
11
  padding: 0;
12
  box-sizing: border-box;
13
- </script>
14
- </body>
15
- </html>
16
 
17
  body {
18
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
19
- background: linear-gradient(135deg, #0f0c29 0%, #302b63 50%, #24243e 100%);
20
- color: #ffffff;
21
  min-height: 100vh;
 
22
  overflow-x: hidden;
23
  }
24
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25
  .container {
26
  max-width: 1400px;
27
  margin: 0 auto;
28
  padding: 2rem;
 
 
 
29
  }
30
 
31
  header {
@@ -185,12 +214,6 @@
185
  position: relative;
186
  overflow: hidden;
187
  user-select: none;
188
- pointer-events: auto;
189
- }
190
-
191
- /* ์ค‘์š”: ํ•˜์œ„ ์š”์†Œ๋“ค์ด ํด๋ฆญ ์ด๋ฒคํŠธ๋ฅผ ๋ฐฉํ•ดํ•˜์ง€ ์•Š๋„๋ก ์„ค์ • */
192
- .option-card * {
193
- pointer-events: none;
194
  }
195
 
196
  .option-card.selected {
@@ -214,19 +237,18 @@
214
  align-items: center;
215
  justify-content: center;
216
  font-weight: bold;
217
- pointer-events: none;
218
  }
219
 
220
  .option-card:hover:not(.selected) {
221
  border-color: #00d2ff;
222
  background: rgba(255, 255, 255, 0.1);
223
  transform: translateY(-2px);
224
- z-index: 10;
225
  }
226
 
227
  .option-name {
228
  font-weight: 600;
229
  margin-bottom: 0.5rem;
 
230
  }
231
 
232
  .option-details {
@@ -234,6 +256,11 @@
234
  justify-content: space-between;
235
  font-size: 0.9rem;
236
  color: #a8a8b3;
 
 
 
 
 
237
  }
238
 
239
  .custom-result {
@@ -1190,57 +1217,69 @@
1190
  let currentPeriod = 3;
1191
 
1192
  // ํŽ˜์ด์ง€ ๋กœ๋“œ ์‹œ ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ ๋“ฑ๋ก
1193
- document.addEventListener('DOMContentLoaded', function() {
1194
- console.log('DOM loaded, registering click events...'); // ๋””๋ฒ„๊น…์šฉ
1195
-
1196
- // ๋ชจ๋“  ์˜ต์…˜ ์นด๋“œ์— ์ง์ ‘ ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ ์ถ”๊ฐ€
1197
- const optionCards = document.querySelectorAll('.option-card');
1198
- console.log('Found option cards:', optionCards.length); // ๋””๋ฒ„๊น…์šฉ
1199
 
1200
- optionCards.forEach(card => {
1201
- card.addEventListener('click', function(e) {
1202
- e.preventDefault();
1203
- e.stopPropagation();
1204
-
1205
- const category = this.dataset.category;
1206
- const id = this.dataset.id;
1207
-
1208
- console.log('Card clicked:', category, id); // ๋””๋ฒ„๊น…์šฉ
1209
-
1210
- if (!category || !id) {
1211
- console.error('Missing category or id:', category, id);
1212
- return;
1213
- }
1214
-
1215
- if (category === 'service' || category === 'additional') {
1216
- // ๋ณต์ˆ˜ ์„ ํƒ ๊ฐ€๋Šฅ
1217
- this.classList.toggle('selected');
1218
-
1219
- if (this.classList.contains('selected')) {
1220
- if (!selectedComponents[category].includes(id)) {
1221
- selectedComponents[category].push(id);
1222
- }
1223
- } else {
1224
- const index = selectedComponents[category].indexOf(id);
1225
- if (index > -1) {
1226
- selectedComponents[category].splice(index, 1);
1227
- }
1228
  }
1229
- } else {
1230
- // ๋‹จ์ผ ์„ ํƒ
1231
- document.querySelectorAll(`[data-category="${category}"]`).forEach(c => {
1232
- c.classList.remove('selected');
1233
- });
1234
-
1235
- this.classList.add('selected');
1236
- selectedComponents[category] = id;
1237
  }
1238
-
1239
- console.log('Selected components:', selectedComponents); // ๋””๋ฒ„๊น…์šฉ
1240
- });
1241
  });
1242
  });
1243
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1244
  // ํƒญ ์ „ํ™˜ ํ•จ์ˆ˜
1245
  function switchTab(tabId) {
1246
  document.querySelectorAll('.tab').forEach(tab => {
@@ -1513,3 +1552,6 @@
1513
  }
1514
  });
1515
  }
 
 
 
 
10
  margin: 0;
11
  padding: 0;
12
  box-sizing: border-box;
13
+ }
 
 
14
 
15
  body {
16
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
17
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
 
18
  min-height: 100vh;
19
+ position: relative;
20
  overflow-x: hidden;
21
  }
22
 
23
+ body::before {
24
+ content: '';
25
+ position: fixed;
26
+ top: 0;
27
+ left: 0;
28
+ right: 0;
29
+ bottom: 0;
30
+ background: linear-gradient(135deg, #0f0c29 0%, #302b63 50%, #24243e 100%);
31
+ z-index: -2;
32
+ }
33
+
34
+ body::after {
35
+ content: '';
36
+ position: fixed;
37
+ top: 0;
38
+ left: 0;
39
+ right: 0;
40
+ bottom: 0;
41
+ background: linear-gradient(270deg, rgba(102, 126, 234, 0.1) 0%, rgba(118, 75, 162, 0.1) 100%);
42
+ z-index: -1;
43
+ animation: gradientShift 10s ease infinite;
44
+ }
45
+
46
+ @keyframes gradientShift {
47
+ 0%, 100% { opacity: 1; }
48
+ 50% { opacity: 0.5; }
49
+ }
50
+
51
  .container {
52
  max-width: 1400px;
53
  margin: 0 auto;
54
  padding: 2rem;
55
+ color: #ffffff;
56
+ position: relative;
57
+ z-index: 1;
58
  }
59
 
60
  header {
 
214
  position: relative;
215
  overflow: hidden;
216
  user-select: none;
 
 
 
 
 
 
217
  }
218
 
219
  .option-card.selected {
 
237
  align-items: center;
238
  justify-content: center;
239
  font-weight: bold;
 
240
  }
241
 
242
  .option-card:hover:not(.selected) {
243
  border-color: #00d2ff;
244
  background: rgba(255, 255, 255, 0.1);
245
  transform: translateY(-2px);
 
246
  }
247
 
248
  .option-name {
249
  font-weight: 600;
250
  margin-bottom: 0.5rem;
251
+ pointer-events: none;
252
  }
253
 
254
  .option-details {
 
256
  justify-content: space-between;
257
  font-size: 0.9rem;
258
  color: #a8a8b3;
259
+ pointer-events: none;
260
+ }
261
+
262
+ .option-details span {
263
+ pointer-events: none;
264
  }
265
 
266
  .custom-result {
 
1217
  let currentPeriod = 3;
1218
 
1219
  // ํŽ˜์ด์ง€ ๋กœ๋“œ ์‹œ ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ ๋“ฑ๋ก
1220
+ window.addEventListener('DOMContentLoaded', function() {
1221
+ console.log('DOM loaded, setting up click handlers...'); // ๋””๋ฒ„๊น…์šฉ
 
 
 
 
1222
 
1223
+ // ์ด๋ฒคํŠธ ์œ„์ž„ ๋ฐฉ์‹์œผ๋กœ ์ฒ˜๋ฆฌ
1224
+ document.addEventListener('click', function(e) {
1225
+ // ํด๋ฆญ๋œ ์š”์†Œ๊ฐ€ option-card์ด๊ฑฐ๋‚˜ ๊ทธ ํ•˜์œ„ ์š”์†Œ์ธ์ง€ ํ™•์ธ
1226
+ if (e.target.classList.contains('option-card')) {
1227
+ handleCardClick(e.target);
1228
+ } else {
1229
+ // ๋ถ€๋ชจ ์š”์†Œ ์ค‘์— option-card๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธ
1230
+ let parent = e.target.parentElement;
1231
+ while (parent && parent !== document.body) {
1232
+ if (parent.classList.contains('option-card')) {
1233
+ handleCardClick(parent);
1234
+ break;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1235
  }
1236
+ parent = parent.parentElement;
 
 
 
 
 
 
 
1237
  }
1238
+ }
 
 
1239
  });
1240
  });
1241
 
1242
+ // ์นด๋“œ ํด๋ฆญ ์ฒ˜๋ฆฌ ํ•จ์ˆ˜
1243
+ function handleCardClick(card) {
1244
+ const category = card.dataset.category;
1245
+ const id = card.dataset.id;
1246
+
1247
+ console.log('Card clicked:', category, id); // ๋””๋ฒ„๊น…์šฉ
1248
+
1249
+ if (!category || !id) {
1250
+ console.error('Missing category or id');
1251
+ return;
1252
+ }
1253
+
1254
+ if (category === 'service' || category === 'additional') {
1255
+ // ๋ณต์ˆ˜ ์„ ํƒ ๊ฐ€๋Šฅ
1256
+ card.classList.toggle('selected');
1257
+
1258
+ if (card.classList.contains('selected')) {
1259
+ if (!selectedComponents[category].includes(id)) {
1260
+ selectedComponents[category].push(id);
1261
+ }
1262
+ } else {
1263
+ const index = selectedComponents[category].indexOf(id);
1264
+ if (index > -1) {
1265
+ selectedComponents[category].splice(index, 1);
1266
+ }
1267
+ }
1268
+ } else {
1269
+ // ๋‹จ์ผ ์„ ํƒ
1270
+ // ๊ฐ™์€ ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ์นด๋“œ๋“ค์˜ ์„ ํƒ ํ•ด์ œ
1271
+ document.querySelectorAll(`[data-category="${category}"]`).forEach(c => {
1272
+ c.classList.remove('selected');
1273
+ });
1274
+
1275
+ // ํ˜„์žฌ ์นด๋“œ ์„ ํƒ
1276
+ card.classList.add('selected');
1277
+ selectedComponents[category] = id;
1278
+ }
1279
+
1280
+ console.log('Selected components:', selectedComponents); // ๋””๋ฒ„๊น…์šฉ
1281
+ }
1282
+
1283
  // ํƒญ ์ „ํ™˜ ํ•จ์ˆ˜
1284
  function switchTab(tabId) {
1285
  document.querySelectorAll('.tab').forEach(tab => {
 
1552
  }
1553
  });
1554
  }
1555
+ </script>
1556
+ </body>
1557
+ </html>