دایره دنبال کننده - فراغیب
صفحهای تازه حاوی «<html> <style> ←===== گرید دستهبندی =====: .cat-grid{ direction:rtl; display:grid; grid-template-columns:repeat(2,1fr); gap:28px 18px; max-width:1200px; margin:auto; padding:20px 10px; list-style:none; } .cat-item{ position:relative; text-align:center; min-width:0; } .cat-link{ position:relative; display:block; color:#222; text-decoration:none; font-weight:700; font-size:14px; ou...» ایجاد کرد |
بدون خلاصۀ ویرایش |
||
| خط ۱: | خط ۱: | ||
<html> | <html> | ||
<style> | <style> | ||
/* ===== | /* ========================= | ||
. | Product Grid | Mobile First | ||
========================= */ | |||
.product-grid{ | |||
direction:rtl; | direction:rtl; | ||
display:grid; | display:grid; | ||
grid-template-columns:repeat(2,1fr); | grid-template-columns:repeat(2,1fr); | ||
gap: | gap:24px 10px; | ||
width:100%; | |||
max-width:1200px; | max-width:1200px; | ||
margin:auto; | margin:auto; | ||
padding: | padding:15px 6px; | ||
list-style:none; | list-style:none; | ||
box-sizing:border-box; | |||
} | } | ||
. | .product-item{ | ||
min-width:0; | |||
text-align:center; | text-align:center; | ||
} | } | ||
. | .product-link{ | ||
position:relative; | position:relative; | ||
display:block; | display:block; | ||
color:#222; | color:#222; | ||
text-decoration:none; | text-decoration:none; | ||
padding:4px; | |||
} | } | ||
/* کادر | /* کادر مربعی دور عکس */ | ||
. | .product-box{ | ||
position:relative; | position:relative; | ||
width: | width:145px; | ||
height: | height:145px; | ||
max-width:100%; | max-width:100%; | ||
margin:auto; | margin:auto; | ||
border-radius:26px; | |||
display:flex; | |||
align-items:center; | |||
justify-content:center; | |||
box-sizing:border-box; | |||
border:1px solid transparent; | |||
} | |||
/* دایره عکس */ | |||
.product-circle{ | |||
width:120px; | |||
height:120px; | |||
border:2px solid #e3e8ee; | |||
border-radius:50%; | border-radius:50%; | ||
background:#fff; | background:#fff; | ||
display:flex; | display:flex; | ||
align-items:center; | align-items:center; | ||
justify-content:center; | justify-content:center; | ||
box-sizing:border-box; | |||
} | } | ||
. | .product-circle img{ | ||
width:88%; | width:88%; | ||
height:88%; | height:88%; | ||
| خط ۶۱: | خط ۶۷: | ||
} | } | ||
/* | /* عنوان */ | ||
. | .product-title{ | ||
display:block; | display:block; | ||
margin-top: | margin-top:8px; | ||
line-height:1. | font-size:14px; | ||
font-weight:700; | |||
line-height:1.8; | |||
} | } | ||
/* دایره | |||
.mouse-view{ | /* ================================== | ||
فقط دستگاههایی که موس دارند | |||
================================== */ | |||
@media (hover:hover) and (pointer:fine){ | |||
/* هاور کادر مربعی */ | |||
.product-link:hover .product-box, | |||
.product-link:focus-visible .product-box{ | |||
border-color:rgba(20,121,255,.22); | |||
background: | |||
linear-gradient( | |||
135deg, | |||
rgba(221,236,255,.75), | |||
rgba(239,246,255,.35) | |||
); | |||
box-shadow: | |||
0 8px 28px rgba(20,121,255,.15), | |||
0 0 35px rgba(20,121,255,.13); | |||
} | |||
/* هاور خود دایره */ | |||
.product-link:hover .product-circle, | |||
.product-link:focus-visible .product-circle{ | |||
border-color:#1479ff; | |||
box-shadow: | |||
0 0 0 1px rgba(20,121,255,.08), | |||
0 0 20px rgba(20,121,255,.18); | |||
} | |||
/* دایره مشاهده */ | |||
.mouse-view{ | |||
position:absolute; | |||
width:54px; | |||
height:54px; | |||
border:2px solid #1479ff; | |||
border-radius:50%; | |||
background:rgba(255,255,255,.92); | |||
color:#1479ff; | |||
font-size:12px; | |||
font-weight:700; | |||
display:flex; | |||
align-items:center; | |||
justify-content:center; | |||
pointer-events:none; | |||
opacity:0; | |||
transform:translate(-50%,-50%); | |||
z-index:5; | |||
} | |||
.product-link:hover .mouse-view{ | |||
opacity:1; | |||
} | |||
} | } | ||
/* ========================= | |||
Tablet | |||
========================= */ | |||
@media (min-width:600px){ | |||
.product-grid{ | |||
grid-template-columns:repeat(3,1fr); | |||
gap:35px 20px; | |||
} | |||
} | } | ||
/* | |||
@media (min-width: | /* ========================= | ||
. | Desktop | ||
========================= */ | |||
@media (min-width:900px){ | |||
.product-grid{ | |||
grid-template-columns:repeat(4,1fr); | grid-template-columns:repeat(4,1fr); | ||
gap: | gap:45px 25px; | ||
padding: | padding:25px 15px; | ||
} | |||
.product-box{ | |||
width:155px; | |||
height:155px; | |||
} | } | ||
. | .product-circle{ | ||
width:140px; | width:140px; | ||
height:140px; | height:140px; | ||
} | } | ||
. | .product-title{ | ||
font-size:16px; | font-size:16px; | ||
} | } | ||
} | } | ||
/* | |||
/* ========================= | |||
صفحه عریض | |||
========================= */ | |||
@media (min-width:1100px){ | |||
.product-grid{ | |||
grid-template-columns:repeat(5,1fr); | |||
} | |||
} | |||
/* ========================= | |||
موبایل کوچک | |||
بدون موشن | |||
========================= */ | |||
@media (max-width:380px){ | @media (max-width:380px){ | ||
. | .product-grid{ | ||
gap: | gap:20px 5px; | ||
padding: | padding:12px 3px; | ||
} | |||
.product-box{ | |||
width:135px; | |||
height:135px; | |||
} | } | ||
. | .product-circle{ | ||
width: | width:115px; | ||
height: | height:115px; | ||
} | } | ||
. | .product-title{ | ||
font-size:13px; | font-size:13px; | ||
} | } | ||
} | } | ||
/* | |||
@media ( | /* ========================= | ||
. | موبایل | ||
فقط هایلایت، بدون موشن | |||
========================= */ | |||
@media (hover:none){ | |||
.mouse-view{ | |||
display:none !important; | |||
} | |||
.product-box, | |||
.product-circle{ | |||
transition:none !important; | |||
} | |||
/* لمس/فعال شدن فقط هایلایت */ | |||
.product-link:active .product-box{ | |||
background:rgba(221,236,255,.7); | |||
border-color:rgba(20,121,255,.25); | |||
box-shadow: | |||
0 8px 25px rgba(20,121,255,.15), | |||
0 0 30px rgba(20,121,255,.12); | |||
} | |||
.product-link:active .product-circle{ | |||
border-color:#1479ff; | |||
} | |||
} | } | ||
</style> | </style> | ||
<li class=" | <ul class="product-grid" aria-label="دستهبندی محصولات"> | ||
<a class=" | |||
<span class=" | <!-- 1 --> | ||
<li class="product-item"> | |||
<a class="product-link" href="#" title="فر و ماکروفر"> | |||
<span class="product-box"> | |||
<span class="product-circle"> | |||
<img src="IMAGE-URL-1.jpg" alt="فر و ماکروفر" loading="lazy"> | |||
</span> | |||
<span class="mouse-view">مشاهده</span> | <span class="mouse-view">مشاهده</span> | ||
</span> | </span> | ||
<span class=" | <span class="product-title">فر و ماکروفر</span> | ||
</a> | </a> | ||
</li> | </li> | ||
<li class=" | <!-- 2 --> | ||
<a class=" | <li class="product-item"> | ||
<span class=" | <a class="product-link" href="#" title="سایر یراق آلات"> | ||
<span class="product-box"> | |||
<span class="product-circle"> | |||
<img src="IMAGE-URL-2.jpg" alt="سایر یراق آلات" loading="lazy"> | |||
</span> | |||
<span class="mouse-view">مشاهده</span> | <span class="mouse-view">مشاهده</span> | ||
</span> | </span> | ||
<span class=" | <span class="product-title">سایر یراق آلات</span> | ||
</a> | </a> | ||
</li> | </li> | ||
<li class=" | <!-- 3 --> | ||
<a class=" | <li class="product-item"> | ||
<span class=" | <a class="product-link" href="#" title="سینک"> | ||
<span class="product-box"> | |||
<span class="product-circle"> | |||
<img src="IMAGE-URL-3.jpg" alt="سینک" loading="lazy"> | |||
</span> | |||
<span class="mouse-view">مشاهده</span> | <span class="mouse-view">مشاهده</span> | ||
</span> | </span> | ||
<span class=" | <span class="product-title">سینک</span> | ||
</a> | </a> | ||
</li> | </li> | ||
<li class=" | <!-- 4 --> | ||
<a class=" | <li class="product-item"> | ||
<span class=" | <a class="product-link" href="#" title="دستگیره"> | ||
<span class="product-box"> | |||
<span class="product-circle"> | |||
<img src="IMAGE-URL-4.jpg" alt="دستگیره" loading="lazy"> | |||
</span> | |||
<span class="mouse-view">مشاهده</span> | <span class="mouse-view">مشاهده</span> | ||
</span> | </span> | ||
<span class=" | <span class="product-title">دستگیره</span> | ||
</a> | </a> | ||
</li> | </li> | ||
<li class=" | <!-- 5 --> | ||
<a class=" | <li class="product-item"> | ||
<span class=" | <a class="product-link" href="#" title="اکسسوری"> | ||
<span class="product-box"> | |||
<span class="product-circle"> | |||
<img src="IMAGE-URL-5.jpg" alt="اکسسوری" loading="lazy"> | |||
</span> | |||
<span class="mouse-view">مشاهده</span> | <span class="mouse-view">مشاهده</span> | ||
</span> | </span> | ||
<span class=" | <span class="product-title">اکسسوری</span> | ||
</a> | </a> | ||
</li> | </li> | ||
<li class=" | <!-- 6 --> | ||
<a class=" | <li class="product-item"> | ||
<span class=" | <a class="product-link" href="#" title="دستگیره دیجیتال"> | ||
<span class="product-box"> | |||
<span class="product-circle"> | |||
<img src="IMAGE-URL-6.jpg" alt="دستگیره دیجیتال" loading="lazy"> | |||
</span> | |||
<span class="mouse-view">مشاهده</span> | <span class="mouse-view">مشاهده</span> | ||
</span> | </span> | ||
<span class=" | <span class="product-title">دستگیره دیجیتال</span> | ||
</a> | </a> | ||
</li> | </li> | ||
<li class=" | <!-- 7 --> | ||
<a class=" | <li class="product-item"> | ||
<span class=" | <a class="product-link" href="#" title="شیر آلات"> | ||
<span class="product-box"> | |||
<span class="product-circle"> | |||
<img src="IMAGE-URL-7.jpg" alt="شیر آلات" loading="lazy"> | |||
</span> | |||
<span class="mouse-view">مشاهده</span> | <span class="mouse-view">مشاهده</span> | ||
</span> | </span> | ||
<span class=" | <span class="product-title">شیر آلات</span> | ||
</a> | </a> | ||
</li> | </li> | ||
<li class=" | <!-- 8 --> | ||
<a class=" | <li class="product-item"> | ||
<span class=" | <a class="product-link" href="#" title="یراق آلات"> | ||
<span class="product-box"> | |||
<span class="product-circle"> | |||
<img src="IMAGE-URL-8.jpg" alt="یراق آلات" loading="lazy"> | |||
</span> | |||
<span class="mouse-view">مشاهده</span> | <span class="mouse-view">مشاهده</span> | ||
</span> | </span> | ||
<span class=" | <span class="product-title">یراق آلات</span> | ||
</a> | </a> | ||
</li> | </li> | ||
</ul> | </ul> | ||
<script> | <script> | ||
document.querySelectorAll('. | /* فقط دسکتاپ: دایره مشاهده موس را دنبال میکند */ | ||
if (window.matchMedia('(hover:hover) and (pointer:fine)').matches) { | |||
document.querySelectorAll('.product-link').forEach(link => { | |||
const view = link.querySelector('.mouse-view'); | |||
link.addEventListener('mousemove', e => { | |||
const box = link.querySelector('.product-box'); | |||
const r = box.getBoundingClientRect(); | |||
let x = e.clientX - r.left; | |||
let y = e.clientY - r.top; | |||
x = Math.max(27, Math.min(x, r.width - 27)); | |||
y = Math.max(27, Math.min(y, r.height - 27)); | |||
view.style.left = x + 'px'; | |||
view.style.top = y + 'px'; | |||
}); | |||
}); | }); | ||
} | |||
</script> | </script> | ||
</html> | </html> | ||