Spaces:
Running
Running
Why is show more details buttons not working when I click it! Fix it now - Follow Up Deployment
Browse files- index.html +252 -1
index.html
CHANGED
|
@@ -1115,11 +1115,180 @@
|
|
| 1115 |
<button class="close-btn absolute top-4 right-4 bg-purple-600 text-white w-10 h-10 rounded-full flex items-center justify-center text-xl transition duration-300 hover:bg-purple-700" onclick="closeModal()">
|
| 1116 |
×
|
| 1117 |
</button>
|
| 1118 |
-
<div id="modalContent" class="
|
| 1119 |
</div>
|
| 1120 |
</div>
|
| 1121 |
|
| 1122 |
<script>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1123 |
// Mobile menu toggle
|
| 1124 |
const mobileMenuButton = document.getElementById('mobile-menu-button');
|
| 1125 |
const mobileMenu = document.getElementById('mobile-menu');
|
|
@@ -1128,6 +1297,88 @@
|
|
| 1128 |
mobileMenu.classList.toggle('hidden');
|
| 1129 |
});
|
| 1130 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1131 |
// Show service details modal
|
| 1132 |
function showDetails(service) {
|
| 1133 |
const details = serviceDetails[service];
|
|
|
|
| 1115 |
<button class="close-btn absolute top-4 right-4 bg-purple-600 text-white w-10 h-10 rounded-full flex items-center justify-center text-xl transition duration-300 hover:bg-purple-700" onclick="closeModal()">
|
| 1116 |
×
|
| 1117 |
</button>
|
| 1118 |
+
<div id="modalContent" class="text-gray-300"></div>
|
| 1119 |
</div>
|
| 1120 |
</div>
|
| 1121 |
|
| 1122 |
<script>
|
| 1123 |
+
// Service details data
|
| 1124 |
+
const serviceDetails = {
|
| 1125 |
+
basic: {
|
| 1126 |
+
title: "Jay's Basic Package",
|
| 1127 |
+
price: "Small Car: $70 | SUV: $80",
|
| 1128 |
+
description: "Our essential detailing package that brings back your car's shine with professional hand washing and interior cleaning.",
|
| 1129 |
+
ideal: "Regular maintenance between full details or for those looking for a thorough clean without advanced protection.",
|
| 1130 |
+
steps: [
|
| 1131 |
+
{
|
| 1132 |
+
title: "Exterior Wash",
|
| 1133 |
+
description: "Two-step hand wash using pH-neutral shampoo and microfiber mitts",
|
| 1134 |
+
benefit: "Removes dirt without stripping wax or damaging paint"
|
| 1135 |
+
},
|
| 1136 |
+
{
|
| 1137 |
+
title: "Wheel Cleaning",
|
| 1138 |
+
description: "Deep cleaning with ceramic-infused wheel cleaner",
|
| 1139 |
+
benefit: "Removes brake dust and protects wheels from corrosion"
|
| 1140 |
+
},
|
| 1141 |
+
{
|
| 1142 |
+
title: "Interior Wipe-down",
|
| 1143 |
+
description: "Cleaning of all surfaces with premium interior cleaner",
|
| 1144 |
+
benefit: "Removes dust, fingerprints and light stains"
|
| 1145 |
+
},
|
| 1146 |
+
{
|
| 1147 |
+
title: "Vacuuming",
|
| 1148 |
+
description: "Complete vacuum of seats, carpets and trunk",
|
| 1149 |
+
benefit: "Removes dirt, debris and pet hair from all areas"
|
| 1150 |
+
},
|
| 1151 |
+
{
|
| 1152 |
+
title: "Window Cleaning",
|
| 1153 |
+
description: "Streak-free cleaning inside and out",
|
| 1154 |
+
benefit: "Crystal clear visibility with no residue"
|
| 1155 |
+
}
|
| 1156 |
+
],
|
| 1157 |
+
features: [
|
| 1158 |
+
{
|
| 1159 |
+
title: "Exterior Features",
|
| 1160 |
+
items: [
|
| 1161 |
+
"Hand wash with pH-neutral shampoo",
|
| 1162 |
+
"Wheel cleaning with ceramic SiO₂",
|
| 1163 |
+
"Tire dressing application",
|
| 1164 |
+
"Door jambs cleaned",
|
| 1165 |
+
"Exterior glass cleaned"
|
| 1166 |
+
]
|
| 1167 |
+
},
|
| 1168 |
+
{
|
| 1169 |
+
title: "Interior Features",
|
| 1170 |
+
items: [
|
| 1171 |
+
"Dashboard and console cleaned",
|
| 1172 |
+
"Cup holders and storage areas cleaned",
|
| 1173 |
+
"Door panels cleaned",
|
| 1174 |
+
"Vacuum seats and carpets",
|
| 1175 |
+
"Trunk vacuumed"
|
| 1176 |
+
]
|
| 1177 |
+
}
|
| 1178 |
+
]
|
| 1179 |
+
},
|
| 1180 |
+
luxury: {
|
| 1181 |
+
title: "Jay's Luxury Package",
|
| 1182 |
+
price: "Small Car: $130 | SUV: $140",
|
| 1183 |
+
description: "Our most popular package that includes advanced protection with ceramic spray wax and interior SiO₂ treatment.",
|
| 1184 |
+
ideal: "Those wanting long-lasting protection and enhanced shine between full details.",
|
| 1185 |
+
steps: [
|
| 1186 |
+
{
|
| 1187 |
+
title: "Basic Package Plus",
|
| 1188 |
+
description: "Includes all Basic package services",
|
| 1189 |
+
benefit: "Complete cleaning foundation"
|
| 1190 |
+
},
|
| 1191 |
+
{
|
| 1192 |
+
title: "Ceramic Spray Wax",
|
| 1193 |
+
description: "Application of premium ceramic spray wax",
|
| 1194 |
+
benefit: "3 months of paint protection and hydrophobic effect"
|
| 1195 |
+
},
|
| 1196 |
+
{
|
| 1197 |
+
title: "Interior Protection",
|
| 1198 |
+
description: "SiO₂ interior treatment on all surfaces",
|
| 1199 |
+
benefit: "Repels dust and makes future cleaning easier"
|
| 1200 |
+
},
|
| 1201 |
+
{
|
| 1202 |
+
title: "Trim Restoration",
|
| 1203 |
+
description: "Application of trim restorer",
|
| 1204 |
+
benefit: "Revives faded plastic and rubber trim"
|
| 1205 |
+
},
|
| 1206 |
+
{
|
| 1207 |
+
title: "Enhanced Protection",
|
| 1208 |
+
description: "Door jambs and hinges treated",
|
| 1209 |
+
benefit: "Complete protection from top to bottom"
|
| 1210 |
+
}
|
| 1211 |
+
],
|
| 1212 |
+
features: [
|
| 1213 |
+
{
|
| 1214 |
+
title: "Exterior Features",
|
| 1215 |
+
items: [
|
| 1216 |
+
"All Basic exterior services",
|
| 1217 |
+
"Ceramic spray wax application",
|
| 1218 |
+
"Trim restoration",
|
| 1219 |
+
"Enhanced door jamb cleaning",
|
| 1220 |
+
"3-month paint protection"
|
| 1221 |
+
]
|
| 1222 |
+
},
|
| 1223 |
+
{
|
| 1224 |
+
title: "Interior Features",
|
| 1225 |
+
items: [
|
| 1226 |
+
"All Basic interior services",
|
| 1227 |
+
"SiO₂ interior protection",
|
| 1228 |
+
"Vinyl/leather conditioning",
|
| 1229 |
+
"Vent cleaning",
|
| 1230 |
+
"Enhanced cup holder cleaning"
|
| 1231 |
+
]
|
| 1232 |
+
}
|
| 1233 |
+
]
|
| 1234 |
+
},
|
| 1235 |
+
max: {
|
| 1236 |
+
title: "Jay's Max Package",
|
| 1237 |
+
price: "Small Car: $200 | SUV: $210",
|
| 1238 |
+
description: "Our most comprehensive package featuring advanced ceramic hyper wax and interior steam cleaning for showroom-quality results.",
|
| 1239 |
+
ideal: "Enthusiasts and those preparing their vehicle for special events or long-term protection.",
|
| 1240 |
+
steps: [
|
| 1241 |
+
{
|
| 1242 |
+
title: "Luxury Package Plus",
|
| 1243 |
+
description: "Includes all Luxury package services",
|
| 1244 |
+
benefit: "Premium cleaning and protection base"
|
| 1245 |
+
},
|
| 1246 |
+
{
|
| 1247 |
+
title: "Hyper Wax Application",
|
| 1248 |
+
description: "Advanced ceramic hyper wax with graphene",
|
| 1249 |
+
benefit: "6 months of extreme protection and gloss"
|
| 1250 |
+
},
|
| 1251 |
+
{
|
| 1252 |
+
title: "Steam Cleaning",
|
| 1253 |
+
description: "Interior steam cleaning of all surfaces",
|
| 1254 |
+
benefit: "Sanitizes and deep cleans without chemicals"
|
| 1255 |
+
},
|
| 1256 |
+
{
|
| 1257 |
+
title: "Clay Bar Treatment",
|
| 1258 |
+
description: "Paint decontamination with clay bar",
|
| 1259 |
+
benefit: "Removes embedded contaminants for glass-smooth finish"
|
| 1260 |
+
},
|
| 1261 |
+
{
|
| 1262 |
+
title: "Final Protection",
|
| 1263 |
+
description: "Hydrophobic SiO₂ infused graphene sealant",
|
| 1264 |
+
benefit: "Maximum water beading and dirt resistance"
|
| 1265 |
+
}
|
| 1266 |
+
],
|
| 1267 |
+
features: [
|
| 1268 |
+
{
|
| 1269 |
+
title: "Exterior Features",
|
| 1270 |
+
items: [
|
| 1271 |
+
"All Luxury exterior services",
|
| 1272 |
+
"Clay bar decontamination",
|
| 1273 |
+
"Hyper ceramic wax with graphene",
|
| 1274 |
+
"Enhanced wheel well cleaning",
|
| 1275 |
+
"6-month paint protection"
|
| 1276 |
+
]
|
| 1277 |
+
},
|
| 1278 |
+
{
|
| 1279 |
+
title: "Interior Features",
|
| 1280 |
+
items: [
|
| 1281 |
+
"All Luxury interior services",
|
| 1282 |
+
"Steam cleaning of all surfaces",
|
| 1283 |
+
"Enhanced leather/vinyl treatment",
|
| 1284 |
+
"Headliner cleaning",
|
| 1285 |
+
"Complete odor elimination"
|
| 1286 |
+
]
|
| 1287 |
+
}
|
| 1288 |
+
]
|
| 1289 |
+
}
|
| 1290 |
+
};
|
| 1291 |
+
|
| 1292 |
// Mobile menu toggle
|
| 1293 |
const mobileMenuButton = document.getElementById('mobile-menu-button');
|
| 1294 |
const mobileMenu = document.getElementById('mobile-menu');
|
|
|
|
| 1297 |
mobileMenu.classList.toggle('hidden');
|
| 1298 |
});
|
| 1299 |
|
| 1300 |
+
// Show service details modal
|
| 1301 |
+
function showDetails(service) {
|
| 1302 |
+
const details = serviceDetails[service];
|
| 1303 |
+
const modal = document.getElementById('modal');
|
| 1304 |
+
const modalContent = document.getElementById('modalContent');
|
| 1305 |
+
|
| 1306 |
+
let html = `
|
| 1307 |
+
<div class="service-details">
|
| 1308 |
+
<h2 class="text-3xl font-bold mb-4 gradient-text">${details.title}</h2>
|
| 1309 |
+
<p class="text-xl font-bold mb-6">${details.price}</p>
|
| 1310 |
+
<p class="mb-8 text-lg text-gray-300">${details.description}</p>
|
| 1311 |
+
|
| 1312 |
+
<div class="grid md:grid-cols-2 gap-8 mb-8">
|
| 1313 |
+
<div class="bg-gray-700 p-6 rounded-xl border border-gray-600">
|
| 1314 |
+
<h3 class="text-xl font-bold mb-4 gradient-text">Step-by-Step Breakdown</h3>
|
| 1315 |
+
<ol class="space-y-4">
|
| 1316 |
+
${details.steps.map((step, index) => `
|
| 1317 |
+
<li class="bg-gray-800 p-4 rounded-lg border border-gray-700">
|
| 1318 |
+
<div class="flex items-start">
|
| 1319 |
+
<span class="bg-purple-600 text-white rounded-full w-6 h-6 flex items-center justify-center mr-3 flex-shrink-0">${index + 1}</span>
|
| 1320 |
+
<div>
|
| 1321 |
+
<h4 class="font-bold text-white">${step.title}</h4>
|
| 1322 |
+
<p class="text-gray-400 mt-1">${step.description}</p>
|
| 1323 |
+
<div class="mt-2 bg-purple-900/30 p-2 rounded">
|
| 1324 |
+
<p class="text-sm font-medium text-purple-400 flex items-start">
|
| 1325 |
+
<span class="mr-1">✓</span>
|
| 1326 |
+
<span>${step.benefit}</span>
|
| 1327 |
+
</p>
|
| 1328 |
+
</div>
|
| 1329 |
+
</div>
|
| 1330 |
+
</div>
|
| 1331 |
+
</li>
|
| 1332 |
+
`).join('')}
|
| 1333 |
+
</ol>
|
| 1334 |
+
</div>
|
| 1335 |
+
|
| 1336 |
+
<div class="bg-gray-700 p-6 rounded-xl border border-gray-600">
|
| 1337 |
+
<h3 class="text-xl font-bold mb-4 gradient-text">Ideal For</h3>
|
| 1338 |
+
<p class="text-gray-300 mb-4">${details.ideal}</p>
|
| 1339 |
+
<h3 class="text-xl font-bold mt-6 mb-4 gradient-text">Key Benefits</h3>
|
| 1340 |
+
<ul class="space-y-2">
|
| 1341 |
+
${details.features.flatMap(section => section.items).slice(0, 5).map(item => `
|
| 1342 |
+
<li class="flex items-start text-gray-300">
|
| 1343 |
+
<span class="text-purple-400 mr-2">✓</span>
|
| 1344 |
+
<span>${item}</span>
|
| 1345 |
+
</li>
|
| 1346 |
+
`).join('')}
|
| 1347 |
+
</ul>
|
| 1348 |
+
</div>
|
| 1349 |
+
</div>
|
| 1350 |
+
|
| 1351 |
+
<div class="bg-purple-900/20 p-6 rounded-xl border border-purple-800/30">
|
| 1352 |
+
<h3 class="text-xl font-bold mb-4 gradient-text">Detailed Features</h3>
|
| 1353 |
+
${details.features.map(section => `
|
| 1354 |
+
<div class="mb-6">
|
| 1355 |
+
<h4 class="text-lg font-bold mb-2 text-white">${section.title}</h4>
|
| 1356 |
+
<ul class="space-y-2">
|
| 1357 |
+
${section.items.map(item => `
|
| 1358 |
+
<li class="flex items-start text-gray-300">
|
| 1359 |
+
<span class="text-purple-400 mr-2">•</span>
|
| 1360 |
+
<span>${item}</span>
|
| 1361 |
+
</li>
|
| 1362 |
+
`).join('')}
|
| 1363 |
+
</ul>
|
| 1364 |
+
</div>
|
| 1365 |
+
`).join('')}
|
| 1366 |
+
</div>
|
| 1367 |
+
</div>
|
| 1368 |
+
`;
|
| 1369 |
+
|
| 1370 |
+
modalContent.innerHTML = html;
|
| 1371 |
+
modal.classList.remove('hidden');
|
| 1372 |
+
document.body.style.overflow = 'hidden';
|
| 1373 |
+
}
|
| 1374 |
+
|
| 1375 |
+
// Close modal
|
| 1376 |
+
function closeModal() {
|
| 1377 |
+
const modal = document.getElementById('modal');
|
| 1378 |
+
modal.classList.add('hidden');
|
| 1379 |
+
document.body.style.overflow = 'auto';
|
| 1380 |
+
}
|
| 1381 |
+
|
| 1382 |
// Show service details modal
|
| 1383 |
function showDetails(service) {
|
| 1384 |
const details = serviceDetails[service];
|