feat: add draggable zoom control with close button and menu toggle

- Add close button (X) to zoom control widget
- Make zoom control draggable anywhere on screen
- Persist dragged position in localStorage (cv-zoom-position)
- Add "Zoom" button to action bar to show control when hidden
- Persist visibility state in localStorage (cv-zoom-visible)
- Cursor changes to "move" to indicate draggability
- Interactive elements (slider, buttons) don't trigger drag
- Position stays within viewport bounds
- All features work on desktop only (zoom hidden on mobile)
This commit is contained in:
juanatsap
2025-11-12 15:09:27 +00:00
parent c89bb43fc8
commit 1c00421bd2
3 changed files with 192 additions and 3 deletions
+29 -1
View File
@@ -3474,7 +3474,7 @@ html {
.zoom-control {
position: fixed;
bottom: 100px; /* Increased from 70px to clear footer */
bottom: 100px; /* Default position, can be dragged */
left: 50%;
transform: translateX(-50%);
z-index: 900;
@@ -3490,6 +3490,34 @@ html {
transition: all 0.3s ease;
opacity: 0.7;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
cursor: move; /* Indicate draggability */
user-select: none; /* Prevent text selection while dragging */
}
/* Close button for zoom control */
.zoom-close-btn {
position: absolute;
top: -8px;
right: -8px;
width: 24px;
height: 24px;
background: rgba(220, 53, 69, 0.9);
border: 2px solid rgba(255, 255, 255, 0.3);
border-radius: 50%;
color: white;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
padding: 0;
transition: all 0.2s ease;
z-index: 1;
}
.zoom-close-btn:hover {
background: rgba(220, 53, 69, 1);
transform: scale(1.1);
box-shadow: 0 2px 8px rgba(220, 53, 69, 0.4);
}
.zoom-control:hover {