diff --git a/DrSousan.Api/Pages/Index.cshtml b/DrSousan.Api/Pages/Index.cshtml index cc34bce..e0b0c37 100644 --- a/DrSousan.Api/Pages/Index.cshtml +++ b/DrSousan.Api/Pages/Index.cshtml @@ -119,6 +119,14 @@ .gallery-placeholder p { font-size:0.75rem; } .gallery-item-overlay { position:absolute; inset:0; background:rgba(184,149,90,0); display:flex; align-items:center; justify-content:center; transition:background 0.3s; } .gallery-item:hover .gallery-item-overlay { background:rgba(184,149,90,0.15); } + .gallery-item.before-after { display:flex; flex-direction:row; } + .gallery-item.before-after .ba-half { flex:1; position:relative; overflow:hidden; } + .gallery-item.before-after .ba-half img { width:100%; height:100%; object-fit:cover; display:block; transition:transform 0.4s; } + .gallery-item.before-after:hover .ba-half img { transform:scale(1.05); } + .gallery-item.before-after .ba-label { position:absolute; bottom:6px; left:50%; transform:translateX(-50%); background:rgba(0,0,0,0.55); color:#fff; font-size:0.65rem; padding:2px 8px; border-radius:20px; white-space:nowrap; pointer-events:none; } + .gallery-item.before-after .ba-divider { width:2px; background:rgba(255,255,255,0.7); flex-shrink:0; } + .gallery-caption { position:absolute; bottom:0; left:0; right:0; background:linear-gradient(transparent,rgba(0,0,0,0.5)); color:#fff; font-size:0.75rem; padding:1.2rem 0.8rem 0.5rem; text-align:center; pointer-events:none; } + .gallery-item[style*="display:none"] { display:none !important; } /* ─── Testimonials ─────────────────────────────────────────── */ #testimonials { background:var(--section-bg); } .testimonials-header { text-align:center; margin-bottom:3rem; } @@ -412,28 +420,37 @@ -
تصویر قبل و بعد
+ var hasBoth = !string.IsNullOrEmpty(item.BeforeImageUrl) && !string.IsNullOrEmpty(item.AfterImageUrl); + var hasImg = !string.IsNullOrEmpty(item.ImageUrl); + if (hasBoth) + { +تصویر قبل و بعد
-تصویر قبل و بعد
-تصویر قبل و بعد
-تصویر قبل و بعد
-تصویر قبل و بعد
-تصویر قبل و بعد
-تصویری یافت نشد.
'; + return; + } + grid.innerHTML = items.map(g => { + const hasBoth = g.beforeImageUrl && g.afterImageUrl; + const hasImg = g.imageUrl; + if (hasBoth) { + return `