القائمة
/
0 ? -0.25 : 0.25;
const oldScale = zoomScale;
zoomScale = Math.max(1, Math.min(zoomMaxScale, zoomScale + delta));
if (oldScale === 1 && zoomScale > 1) {
const r = $el.getBoundingClientRect();
const cx = $event.clientX - (r.left + r.width/2);
const cy = $event.clientY - (r.top + r.height/2);
zoomPanX = -cx * (zoomScale-1)/zoomScale;
zoomPanY = -cy * (zoomScale-1)/zoomScale;
} else if (zoomScale > 1) {
zoomPanX = zoomPanX * (zoomScale / oldScale);
zoomPanY = zoomPanY * (zoomScale / oldScale);
}
if (zoomScale <= 1) { resetZoom(); } else { clampPan(); }
"
class="relative w-full h-full flex items-center justify-center p-4 [touch-action:none]"
:class="zoomScale > 1 ? (zoomPanning ? 'cursor-grabbing' : 'cursor-grab') : (modalTotal > 1 ? (modalDragging ? 'cursor-grabbing' : 'cursor-grab') : '')"
@mousedown="modalDragStart($event)"
@mousemove="modalDragMove($event)"
@mouseup="modalDragEnd($event)"
@mouseleave="modalDragEnd($event)"
@touchstart="modalDragStart($event)"
@touchmove="modalDragMove($event)"
@touchend="modalDragEnd($event)"
:style="modalDragOffset ? `transform: translateX(${modalDragOffset}px); transition: none;` : 'transition: transform 0.2s ease-out;'">
measureZoomCeiling($el))"
@click.stop
@dblclick.stop.prevent="if (lastInputWasTouch) return; zoomAnimating = true; if (zoomScale > 1) { resetZoom(); } else { const r = $el.getBoundingClientRect(); const cx = $event.clientX - (r.left + r.width/2); const cy = $event.clientY - (r.top + r.height/2); zoomScale = Math.min(2.5, zoomMaxScale); zoomPanX = -cx * (zoomScale-1)/zoomScale; zoomPanY = -cy * (zoomScale-1)/zoomScale; clampPan(); } setTimeout(() => { zoomAnimating = false; }, 300);"
draggable="false"
:style="modalActive === largeIdx
? 'position:relative;transform: scale(' + zoomScale + ') translate(' + (zoomPanX / zoomScale) + 'px, ' + (zoomPanY / zoomScale) + 'px); transform-origin: center center; will-change: transform; transition: ' + (zoomAnimating ? 'transform 0.3s ease-out' : (zoomScale > 1 ? 'none' : 'transform 0.2s ease-out')) + ';'
: ''" />
شماعة ملابس خشبية بقاعدة تخزين
شماعة ملابس خشبية أنيقة بقاعدة سفلية للتخزين وخطافات جانبية، تجمع الترتيب والأناقة في مكان واحد لغرفة النوم أو المدخل.

رتّبي ملابسك بأناقة مع شماعة الملابس الخشبية! تصميم دافئ وعملي يجمع بين عمود تعليق واسع، خطافات جانبية خشبية، وقاعدة سفلية مفتوحة لتخزين الأحذية والسلال والصناديق، كل شي بمكان واحد ومرتب.
مميزات المنتج:
- عمود تعليق طويل يتسع لعدد كبير من الملابس والمعاطف
- خطافات خشبية جانبية مثالية للشنط والأوشحة والقبعات
- قاعدة سفلية مفتوحة لتخزين الأحذية والسلال والصناديق
- هيكل خشبي متين بلون بني داكن أنيق
- عجلات صغيرة أسفل القاعدة تسهّل التحريك (إن كانت متوفرة بنسختك)
- تناسب غرف النوم، المداخل، غرف الملابس، والمحلات
- تصميم عصري ودافئ يضيف لمسة جمالية للمكان
حل عملي وأنيق يخلّصك من فوضى الملابس ويوفر مساحة بغرفتك.
| التصنيف | تنظيم و تخزين |
|---|---|
| رمز المنتج | MD_0266 |
JD 23