بی آکادمی
آموزش HTML
آموزش CSS
فلکس باکس
جاوااسکریپت
آموزش SQL
آموزش MySQL
آموزش PHP
آموزش لاراول
دانلود و نصب لینوکس
داکر دسکتاپ
VS Code
گیت و گیت هاب
آموزش پایتون
هوش مصنوعی
TypeScript
فروشگاه اینترنتی
اپلیکیشن موبایل
آموزش اکسل

پروژه فروشگاه اینترنتی با جاوااسکریپت - بخش اول: نمایش محصولات


🎯 اهداف یادگیری

  • آشنایی با ساختار نمایش محصولات در صفحه وب
  • یادگیری ایجاد کارت محصول با HTML و CSS
  • پیاده‌سازی نمایش پویای محصولات با جاوااسکریپت
  • افزودن قابلیت‌های تعاملی به محصولات

📌 ساختار HTML محصولات

ساختار پایه برای نمایش لیست محصولات:

html
<div class="products-container">
<div class="product-card">
<img src="laptop.jpg" alt="لپ تاپ ایسوس">
<h3>لپ تاپ ایسوس ROG</h3>
<p class="price">35,000,000 تومان</p>
<button class="add-to-cart">افزودن به سبد خرید</button>
</div>
<!-- محصولات دیگر -->
</div>

اجزای اصلی کارت محصول:

  • تصویر محصول: نمایش تصویر شاخص محصول
  • عنوان محصول: نام کامل محصول به فارسی
  • قیمت: قیمت به همراه واحد پول
  • دکمه اقدام: دکمه افزودن به سبد خرید

📌 استایل‌دهی با CSS

طراحی ظاهری کارت‌های محصول:

css
.products-container {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
gap: 1rem;
padding: 1rem;
}
.product-card {
border: 1px solid #eee;
border-radius: 8px;
padding: 1rem;
transition: all 0.3s ease;
}
.product-card:hover {
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
transform: translateY(-5px);
}

نکات طراحی:

  • واکنش‌گرا: استفاده از CSS Grid برای چیدمان محصولات
  • افکت‌های تعاملی: افزودن hover effects برای تجربه کاربری بهتر
  • سایه و گردی گوشه‌ها: برای زیبایی ظاهری
  • حاشیه‌ها و فاصله‌ها: رعایت اصول spacing

📌 نمایش پویای محصولات با جاوااسکریپت

تابع نمایش محصولات به صورت پویا:

javascript
// تابع نمایش محصولات
function displayProducts(products) {
const container = document.querySelector('.products-container');
container.innerHTML = '';
products.forEach(product => {
const productElement = document.createElement('div');
productElement.className = 'product-card';
productElement.innerHTML = `
<img src="${product.image}" alt="${product.name}">
<h3>${product.name}</h3>
<p class="price">${product.price.toLocaleString()} تومان</p>
<button class="add-to-cart" data-id="${product.id}">
افزودن به سبد خرید
</button>
`;
container.appendChild(productElement);
});
}

توابع اصلی نمایش محصولات:

  • createElement: ایجاد المان‌های HTML به صورت پویا
  • template literals: استفاده از رشته‌های قالب برای نمایش داده‌ها
  • toLocaleString: فرمت‌دهی قیمت به صورت خوانا
  • appendChild: اضافه کردن محصولات به صفحه

📌 افزودن تعاملات کاربری

مدیریت رویدادهای کلیک برای محصولات:

javascript
// مدیریت کلیک روی دکمه افزودن به سبد خرید
function setupAddToCartButtons() {
const buttons = document.querySelectorAll('.add-to-cart');
buttons.forEach(button => {
button.addEventListener('click', () => {
const productId = parseInt(button.getAttribute('data-id'));
addToCart(productId);
showToast('محصول به سبد خرید اضافه شد');
});
});
}

تعاملات اصلی:

  • افزودن به سبد خرید: مدیریت رویداد کلیک روی دکمه‌ها
  • نمایش پیام: اطلاع‌رسانی به کاربر پس از هر اقدام
  • انیمیشن‌ها: افزودن اثرات بصری برای تعاملات
  • مدیریت وضعیت: تغییر ظاهر دکمه پس از افزودن به سبد

📌 تمرین عملی

صفحه نمایش محصولات را با ویژگی‌های زیر تکمیل کنید:

javascript
// 1. افزودن قابلیت نمایش ستاره‌های امتیاز محصول
// 2. پیاده‌سازی سیستم فیلتر بر اساس دسته‌بندی
// 3. افزودن دکمه مشاهده جزئیات محصول

راهنمای تمرین:

  1. برای هر محصول بر اساس rating آن، ستاره‌های امتیاز نمایش دهید
  2. یک dropdown برای فیلتر محصولات بر اساس دسته‌بندی ایجاد کنید
  3. برای هر محصول دکمه "مشاهده جزئیات" اضافه کنید
  4. از event delegation برای مدیریت رویدادها استفاده کنید

📌 قدم بعدی

در بخش بعدی با پیاده‌سازی سبد خرید و مدیریت سفارشات آشنا خواهیم شد!