<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>电商商品主图展示</title>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Microsoft YaHei', Arial, sans-serif;
}
body {
background-color: #f5f5f5;
padding: 20px;
}
.product-container {
max-width: 1200px;
margin: 0 auto;
background-color: #fff;
border-radius: 8px;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
padding: 20px;
display: flex;
flex-wrap: wrap;
}
.product-gallery {
width: 50%;
padding-right: 20px;
}
.main-image {
width: 100%;
height: 400px;
overflow: hidden;
margin-bottom: 10px;
border: 1px solid #eee;
position: relative;
}
.main-image img {
width: 100%;
height: 100%;
object-fit: contain;
cursor: zoom-in;
transition: transform 0.3s;
}
.thumbnail-container {
display: flex;
gap: 10px;
overflow-x: auto;
padding-bottom: 10px;
}
.thumbnail {
width: 80px;
height: 80px;
border: 1px solid #ddd;
cursor: pointer;
flex-shrink: 0;
transition: border-color 0.3s;
}
.thumbnail:hover, .thumbnail.active {
border-color: #ff6700;
}
.thumbnail img {
width: 100%;
height: 100%;
object-fit: cover;
}
.product-info {
width: 50%;
padding-left: 20px;
}
.product-title {
font-size: 22px;
font-weight: bold;
margin-bottom: 15px;
color: #333;
}
.product-price {
font-size: 24px;
color: #ff6700;
margin-bottom: 20px;
font-weight: bold;
}
.product-desc {
color: #666;
line-height: 1.6;
margin-bottom: 20px;
}
.product-sku {
margin-bottom: 20px;
}
.sku-title {
font-size: 16px;
margin-bottom: 10px;
color: #333;
}
.sku-options {
display: flex;
gap: 10px;
flex-wrap: wrap;
}
.sku-option {
padding: 5px 12px;
border: 1px solid #ddd;
border-radius: 4px;
cursor: pointer;
transition: all 0.3s;
}
.sku-option:hover, .sku-option.selected {
border-color: #ff6700;
color: #ff6700;
}
.action-buttons {
display: flex;
gap: 15px;
margin-top: 30px;
}
.btn {
padding: 12px 30px;
border-radius: 4px;
font-size: 16px;
cursor: pointer;
transition: all 0.3s;
}
.btn-primary {
background-color: #ff6700;
color: white;
border: none;
}
.btn-primary:hover {
background-color: #ff4500;
}
.btn-secondary {
background-color: #fff;
color: #ff6700;
border: 1px solid #ff6700;
}
.btn-secondary:hover {
background-color: #fff8f5;
}
.zoom-overlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.8);
display: none;
justify-content: center;
align-items: center;
z-index: 1000;
}
.zoomed-image {
max-width: 90%;
max-height: 90%;
}
.close-zoom {
position: absolute;
top: 20px;
right: 20px;
color: white;
font-size: 30px;
cursor: pointer;
}
@media (max-width: 768px) {
.product-container {
flex-direction: column;
}
.product-gallery, .product-info {
width: 100%;
padding: 0;
}
.product-info {
margin-top: 20px;
}
.main-image {
height: 300px;
}
}
</style>
</head>
<body>
<div class="product-container">
<div class="product-gallery">
<div class="main-image">
<img id="mainImage" src="https://via.placeholder.com/600x600?text=主图" alt="商品主图">
</div>
<div class="thumbnail-container">
<div class="thumbnail active" onclick="changeMainImage('https://via.placeholder.com/600x600?text=主图1')">
<img src="https://via.placeholder.com/600x600?text=主图1" alt="商品缩略图1">
</div>
<div class="thumbnail" onclick="changeMainImage('https://via.placeholder.com/600x600?text=主图2')">
<img src="https://via.placeholder.com/600x600?text=主图2" alt="商品缩略图2">
</div>
<div class="thumbnail" onclick="changeMainImage('https://via.placeholder.com/600x600?text=主图3')">
<img src="https://via.placeholder.com/600x600?text=主图3" alt="商品缩略图3">
</div>
<div class="thumbnail" onclick="changeMainImage('https://via.placeholder.com/600x600?text=主图4')">
<img src="https://via.placeholder.com/600x600?text=主图4" alt="商品缩略图4">
</div>
<div class="thumbnail" onclick="changeMainImage('https://via.placeholder.com/600x600?text=主图5')">
<img src="https://via.placeholder.com/600x600?text=主图5" alt="商品缩略图5">
</div>
</div>
</div>
<div class="product-info">
<h1 class="product-title">高端智能手表 Pro Max 2023款</h1>
<div class="product-price">¥1299.00</div>
<div class="product-desc">
<p>全新升级的智能手表,采用1.78英寸AMOLED全面屏,支持血氧检测、心率监测、睡眠分析等健康功能。内置GPS定位,50米防水,超长续航30天。</p>
<p>支持蓝牙通话、消息提醒、音乐控制等多种智能功能,适配iOS和Android系统。</p>
</div>
<div class="product-sku">
<div class="sku-title">颜色选择</div>
<div class="sku-options">
<div class="sku-option selected" onclick="selectSku(this)">曜石黑</div>
<div class="sku-option" onclick="selectSku(this)">星空银</div>
<div class="sku-option" onclick="selectSku(this)">玫瑰金</div>
<div class="sku-option" onclick="selectSku(this)">深海蓝</div>
</div>
</div>
<div class="product-sku">
<div class="sku-title">版本选择</div>
<div class="sku-options">
<div class="sku-option selected" onclick="selectSku(this)">标准版</div>
<div class="sku-option" onclick="selectSku(this)">运动版</div>
<div class="sku-option" onclick="selectSku(this)">尊享版</div>
</div>
</div>
<div class="action-buttons">
<button class="btn btn-primary">立即购买</button>
<button class="btn btn-secondary">加入购物车</button>
</div>
</div>
</div>
<div class="zoom-overlay" id="zoomOverlay">
<span class="close-zoom" onclick="closeZoom()">×</span>
<img class="zoomed-image" id="zoomedImage" src="" alt="放大图片">
</div>
<script>
// 切换主图
function changeMainImage(src) {
document.getElementById('mainImage').src = src;
document.getElementById('mainImage').dataset.original = src;
// 更新缩略图选中状态
const thumbnails = document.querySelectorAll('.thumbnail');
thumbnails.forEach(thumb => {
thumb.classList.remove('active');
if (thumb.querySelector('img').src === src) {
thumb.classList.add('active');
}
});
}
// 选择SKU
function selectSku(element) {
const siblings = element.parentElement.querySelectorAll('.sku-option');
siblings.forEach(sib => sib.classList.remove('selected'));
element.classList.add('selected');
}
// 图片放大功能
document.getElementById('mainImage').addEventListener('click', function() {
const zoomOverlay = document.getElementById('zoomOverlay');
const zoomedImage = document.getElementById('zoomedImage');
zoomedImage.src = this.dataset.original || this.src;
zoomOverlay.style.display = 'flex';
});
// 关闭放大
function closeZoom() {
document.getElementById('zoomOverlay').style.display = 'none';
}
// 点击放大区域外关闭
document.getElementById('zoomOverlay').addEventListener('click', function(e) {
if (e.target === this) {
closeZoom();
}
});
</script>
</body>
</html>