refactor: enhance product detail page with dynamic content loading and improved gallery functionality
- Updated product-detail.html to replace static content with dynamic placeholders for images, title, description, sizes, and colors. - Modified main.js to implement dynamic loading of product details, including title, description, images, sizes, and colors. - Improved gallery functionality to support a carousel view for product images, including navigation buttons. - Adjusted CSS to add new transition durations and easing functions for smoother animations.
This commit is contained in:
parent
195286e6c8
commit
7295bcba7e
4 changed files with 533 additions and 785 deletions
|
|
@ -194,71 +194,33 @@
|
|||
<div
|
||||
class="flex flex-row md:flex-col gap-3 md:gap-4 w-full md:w-32 overflow-x-auto md:overflow-visible"
|
||||
>
|
||||
<div
|
||||
class="w-32 h-32 bg-floral-white rounded-lg overflow-hidden cursor-pointer"
|
||||
>
|
||||
<img
|
||||
src="assets/images/outdoor_sofa_set.png"
|
||||
alt="Outdoor sofa set"
|
||||
class="w-full h-full object-cover"
|
||||
/>
|
||||
</div>
|
||||
<div
|
||||
class="w-32 h-32 bg-floral-white rounded-lg overflow-hidden cursor-pointer"
|
||||
>
|
||||
<img
|
||||
src="assets/images/outdoor_sofa_set.png"
|
||||
alt="Outdoor sofa set 2"
|
||||
class="w-full h-full object-cover"
|
||||
/>
|
||||
</div>
|
||||
<div
|
||||
class="w-32 h-32 bg-floral-white rounded-lg overflow-hidden cursor-pointer"
|
||||
>
|
||||
<img
|
||||
src="assets/images/outdoor_sofa_set.png"
|
||||
alt="Stuart sofa"
|
||||
class="w-full h-full object-cover"
|
||||
/>
|
||||
</div>
|
||||
<div
|
||||
class="w-32 h-32 bg-floral-white rounded-lg overflow-hidden cursor-pointer"
|
||||
>
|
||||
<img
|
||||
src="assets/images/outdoor_sofa_set.png"
|
||||
alt="Maya sofa three seater"
|
||||
class="w-full h-full object-cover"
|
||||
/>
|
||||
</div>
|
||||
<!-- Thumbnail images will be populated dynamically -->
|
||||
</div>
|
||||
|
||||
<!-- Main Product Image -->
|
||||
<div
|
||||
class="w-full h-80 md:w-[500px] md:h-[500px] bg-floral-white rounded-lg overflow-hidden"
|
||||
>
|
||||
<img
|
||||
src="assets/images/asgaard_sofa.png"
|
||||
alt="Asgaard sofa"
|
||||
class="w-full h-full object-cover"
|
||||
/>
|
||||
<!-- Main product image will be populated dynamically -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Right Section - Product Details -->
|
||||
<div class="w-full md:w-[500px]">
|
||||
<!-- Product Title -->
|
||||
<h1 class="font-playfair font-normal text-4xl text-black mb-8">
|
||||
Asgaard sofa
|
||||
<h1
|
||||
class="font-playfair font-normal text-4xl text-black mb-8"
|
||||
id="product-title"
|
||||
>
|
||||
<!-- Product title will be populated dynamically -->
|
||||
</h1>
|
||||
|
||||
<!-- Product Description -->
|
||||
<p
|
||||
class="font-playfair font-normal text-sm text-black mb-12 max-w-md"
|
||||
id="product-description"
|
||||
>
|
||||
Setting the bar as one of the loudest speakers in its class, the
|
||||
Kilburn is a compact, stout-hearted hero with a well-balanced
|
||||
audio which boasts a clear midrange and extended highs for a
|
||||
sound.
|
||||
<!-- Product description will be populated dynamically -->
|
||||
</p>
|
||||
|
||||
<!-- Size Options -->
|
||||
|
|
@ -269,36 +231,7 @@
|
|||
Size
|
||||
</h3>
|
||||
<div class="grid grid-cols-6 gap-2" id="size-buttons-container">
|
||||
<button
|
||||
class="w-8 h-8 bg-uc-gold text-white font-playfair font-normal text-sm rounded flex items-center justify-center size-button"
|
||||
>
|
||||
L
|
||||
</button>
|
||||
<button
|
||||
class="w-8 h-8 bg-floral-white text-black font-playfair font-normal text-sm rounded flex items-center justify-center size-button"
|
||||
>
|
||||
XL
|
||||
</button>
|
||||
<button
|
||||
class="w-8 h-8 bg-floral-white text-black font-playfair font-normal text-sm rounded flex items-center justify-center size-button"
|
||||
>
|
||||
XS
|
||||
</button>
|
||||
<button
|
||||
class="w-8 h-8 bg-floral-white text-black font-playfair font-normal text-sm rounded flex items-center justify-center size-button"
|
||||
>
|
||||
S
|
||||
</button>
|
||||
<button
|
||||
class="w-8 h-8 bg-floral-white text-black font-playfair font-normal text-sm rounded flex items-center justify-center size-button"
|
||||
>
|
||||
M
|
||||
</button>
|
||||
<button
|
||||
class="w-8 h-8 bg-floral-white text-black font-playfair font-normal text-sm rounded flex items-center justify-center size-button"
|
||||
>
|
||||
2XL
|
||||
</button>
|
||||
<!-- Size buttons will be populated dynamically -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
@ -309,12 +242,8 @@
|
|||
>
|
||||
Color
|
||||
</h3>
|
||||
<div class="flex gap-4">
|
||||
<button
|
||||
class="w-8 h-8 bg-purple-500 rounded-full border-2 border-black"
|
||||
></button>
|
||||
<button class="w-8 h-8 bg-black rounded-full"></button>
|
||||
<button class="w-8 h-8 bg-uc-gold rounded-full"></button>
|
||||
<div class="flex gap-4" id="color-buttons-container">
|
||||
<!-- Color buttons will be populated dynamically -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
@ -365,62 +294,7 @@
|
|||
|
||||
<!-- Product Metadata -->
|
||||
<div class="space-y-4">
|
||||
<div class="flex items-center">
|
||||
<span
|
||||
class="font-playfair font-normal text-base text-quick-silver w-20"
|
||||
>Model No.</span
|
||||
>
|
||||
<span
|
||||
class="font-playfair font-medium text-base text-quick-silver mx-2"
|
||||
>:</span
|
||||
>
|
||||
<span
|
||||
class="font-playfair font-normal text-base text-quick-silver"
|
||||
>SS001</span
|
||||
>
|
||||
</div>
|
||||
<div class="flex items-center">
|
||||
<span
|
||||
class="font-playfair font-normal text-base text-quick-silver w-20"
|
||||
>Category</span
|
||||
>
|
||||
<span
|
||||
class="font-playfair font-medium text-base text-quick-silver mx-2"
|
||||
>:</span
|
||||
>
|
||||
<span
|
||||
class="font-playfair font-normal text-base text-quick-silver"
|
||||
>Sofas</span
|
||||
>
|
||||
</div>
|
||||
<div class="flex items-center">
|
||||
<span
|
||||
class="font-playfair font-normal text-base text-quick-silver w-20"
|
||||
>Tags</span
|
||||
>
|
||||
<span
|
||||
class="font-playfair font-medium text-base text-quick-silver mx-2"
|
||||
>:</span
|
||||
>
|
||||
<span
|
||||
class="font-playfair font-normal text-base text-quick-silver"
|
||||
>Sofa, Chair, Home, Shop</span
|
||||
>
|
||||
</div>
|
||||
<div class="flex items-center">
|
||||
<span
|
||||
class="font-playfair font-normal text-base text-quick-silver w-20"
|
||||
>Dimension</span
|
||||
>
|
||||
<span
|
||||
class="font-playfair font-medium text-base text-quick-silver mx-2"
|
||||
>:</span
|
||||
>
|
||||
<span
|
||||
class="font-playfair font-normal text-base text-quick-silver"
|
||||
>180cm x 85cm x 75cm</span
|
||||
>
|
||||
</div>
|
||||
<!-- Product metadata will be populated dynamically -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -439,45 +313,61 @@
|
|||
</div>
|
||||
|
||||
<!-- Copy -->
|
||||
<div class="max-w-5xl mx-auto space-y-6">
|
||||
<p
|
||||
class="font-playfair text-base leading-6 text-[#333333] text-justify"
|
||||
>
|
||||
Embodying the raw, wayward spirit of rock ‘n’ roll, the Kilburn
|
||||
portable active stereo speaker takes the unmistakable look and
|
||||
sound of Marshall, unplugs the chords, and takes the show on the
|
||||
road.
|
||||
</p>
|
||||
<p
|
||||
class="font-playfair text-base leading-6 text-[#333333] text-justify"
|
||||
>
|
||||
Weighing in under 7 pounds, the Kilburn is a lightweight piece of
|
||||
vintage styled engineering. Setting the bar as one of the loudest
|
||||
speakers in its class, the Kilburn is a compact, stout-hearted
|
||||
hero with a well-balanced audio which boasts a clear midrange and
|
||||
extended highs for a sound that is both articulate and pronounced.
|
||||
The analogue knobs allow you to fine tune the controls to your
|
||||
personal preferences while the guitar-influenced leather strap
|
||||
enables easy and stylish travel.
|
||||
</p>
|
||||
<div
|
||||
class="max-w-5xl mx-auto space-y-6"
|
||||
id="product-description-content"
|
||||
>
|
||||
<!-- Product description content will be populated dynamically -->
|
||||
</div>
|
||||
|
||||
<!-- Images -->
|
||||
<div class="grid grid-cols-1 md:grid-cols-2 gap-8 mt-10">
|
||||
<div class="rounded-[10px] bg-floral-white p-6">
|
||||
<img
|
||||
src="assets/images/asgaard_sofa.png"
|
||||
alt="Sofa variant left"
|
||||
class="w-full h-80 object-contain mx-auto"
|
||||
/>
|
||||
</div>
|
||||
<div class="rounded-[10px] bg-floral-white p-6">
|
||||
<img
|
||||
src="assets/images/asgaard_sofa.png"
|
||||
alt="Sofa variant right"
|
||||
class="w-full h-80 object-contain mx-auto"
|
||||
/>
|
||||
<div class="relative mt-10">
|
||||
<div
|
||||
class="grid grid-cols-1 md:grid-cols-2 gap-8"
|
||||
id="product-gallery-images"
|
||||
>
|
||||
<!-- Product gallery images will be populated dynamically -->
|
||||
</div>
|
||||
<!-- Back Arrow -->
|
||||
<button
|
||||
id="gallery-back-btn"
|
||||
class="absolute top-1/2 left-0 transform -translate-y-1/2 bg-white border border-gray-300 rounded-full p-3 shadow-lg hover:shadow-xl transition-all duration-200 opacity-0 pointer-events-none"
|
||||
style="display: none"
|
||||
>
|
||||
<svg
|
||||
class="w-6 h-6 text-gray-600"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
viewBox="0 0 24 24"
|
||||
>
|
||||
<path
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="2"
|
||||
d="M15 19l-7-7 7-7"
|
||||
></path>
|
||||
</svg>
|
||||
</button>
|
||||
<!-- Forward Arrow -->
|
||||
<button
|
||||
id="gallery-next-btn"
|
||||
class="absolute top-1/2 right-0 transform -translate-y-1/2 bg-white border border-gray-300 rounded-full p-3 shadow-lg hover:shadow-xl transition-all duration-200 opacity-0 pointer-events-none"
|
||||
style="display: none"
|
||||
>
|
||||
<svg
|
||||
class="w-6 h-6 text-gray-600"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
viewBox="0 0 24 24"
|
||||
>
|
||||
<path
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="2"
|
||||
d="M9 5l7 7-7 7"
|
||||
></path>
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue