Spaces:
Paused
Paused
| document.addEventListener('DOMContentLoaded', () => { | |
| const chatBotContainer = document.getElementById('chat-bot-container'); | |
| let isDragging = false; | |
| let offsetX, offsetY; | |
| let saveTimeout; | |
| // Загрузка позиции и размера из localStorage | |
| const savedPosition = localStorage.getItem('chatBotPosition'); | |
| const savedSize = localStorage.getItem('chatBotSize'); | |
| if (savedPosition) { | |
| const { left, top } = JSON.parse(savedPosition); | |
| chatBotContainer.style.left = `${left}px`; | |
| chatBotContainer.style.top = `${top}px`; | |
| } | |
| if (savedSize) { | |
| const { width, height } = JSON.parse(savedSize); | |
| chatBotContainer.style.width = `${width}px`; | |
| chatBotContainer.style.height = `${height}px`; | |
| } | |
| // Добавляем обработчики для перетаскивания | |
| chatBotContainer.querySelector('.chat-header').addEventListener('mousedown', (e) => { | |
| isDragging = true; | |
| offsetX = e.clientX - chatBotContainer.offsetLeft; | |
| offsetY = e.clientY - chatBotContainer.offsetTop; | |
| }); | |
| document.addEventListener('mousemove', (e) => { | |
| if (isDragging) { | |
| chatBotContainer.style.left = `${e.clientX - offsetX}px`; | |
| chatBotContainer.style.top = `${e.clientY - offsetY}px`; | |
| } | |
| }); | |
| document.addEventListener('mouseup', () => { | |
| isDragging = false; | |
| scheduleSave(); | |
| }); | |
| // // Добавляем обработчики для изменения размера | |
| // chatBotContainer.addEventListener('mousedown', (e) => { | |
| // if (e.target.classList.contains('resizable')) { | |
| // isDragging = true; | |
| // offsetX = e.clientX - chatBotContainer.offsetWidth; | |
| // offsetY = e.clientY - chatBotContainer.offsetHeight; | |
| // } | |
| // }); | |
| document.addEventListener('mousemove', (e) => { | |
| if (isDragging && e.target.classList.contains('resizable')) { | |
| chatBotContainer.style.width = `${e.clientX - offsetX}px`; | |
| chatBotContainer.style.height = `${e.clientY - offsetY}px`; | |
| } | |
| }); | |
| document.addEventListener('mouseup', () => { | |
| isDragging = false; | |
| scheduleSave(); | |
| }); | |
| function scheduleSave() { | |
| clearTimeout(saveTimeout); | |
| saveTimeout = setTimeout(savePositionAndSize, 200); // Задержка в 200 миллисекунд | |
| } | |
| function savePositionAndSize() { | |
| const position = { | |
| left: chatBotContainer.offsetLeft, | |
| top: chatBotContainer.offsetTop | |
| }; | |
| const size = { | |
| width: chatBotContainer.offsetWidth, | |
| height: chatBotContainer.offsetHeight | |
| }; | |
| localStorage.setItem('chatBotPosition', JSON.stringify(position)); | |
| localStorage.setItem('chatBotSize', JSON.stringify(size)); | |
| } | |
| }); |