القائمة
/
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_0262 |
JD 23