Spaces:
Running
Running
console.log('Загрузка main.js'); | |
// Инициализация основных компонентов Windows 10 | |
document.addEventListener('DOMContentLoaded', () => { | |
console.log('DOM полностью загружен'); | |
// Создаем основной контейнер для Windows 10 | |
const windowsContainer = document.getElementById('windows-container'); | |
console.log('Контейнер окон:', windowsContainer); | |
// Инициализируем компоненты | |
initializeDesktop(windowsContainer); | |
// Важно: инициализируем startMenu до taskbar, | |
// чтобы избежать конфликтов при инициализации | |
initializeStartMenu(); | |
initializeTaskbar(); | |
initializeWindows(); | |
console.log('Windows 10 simulator started'); | |
// Добавляем тестовую функцию для проверки работы окон | |
window.testCreateWindow = () => { | |
console.log('Тестовое создание окна'); | |
createWindow({ | |
title: 'Тестовое окно', | |
icon: 'default-app-icon.png', | |
content: '<div style="padding: 20px;">Это тестовое окно для проверки работы системы</div>', | |
width: 500, | |
height: 300, | |
x: 100, | |
y: 100, | |
isActive: true | |
}); | |
}; | |
// Добавим подсветку для кнопки "Пуск" | |
const startButtonElement = document.getElementById('start-button'); | |
if (startButtonElement) { | |
console.log('Кнопка "Пуск" найдена в DOM:', startButtonElement); | |
/* | |
startButtonElement.style.animation = 'pulse 1.5s infinite'; | |
// Добавляем стиль для анимации | |
const style = document.createElement('style'); | |
style.textContent = ` | |
@keyframes pulse { | |
0% { box-shadow: 0 0 0 0 rgba(0, 120, 215, 0.7); } | |
70% { box-shadow: 0 0 0 10px rgba(0, 120, 215, 0); } | |
100% { box-shadow: 0 0 0 0 rgba(0, 120, 215, 0); } | |
} | |
`; | |
document.head.appendChild(style); | |
*/ | |
} | |
// Создаем тестовое окно при загрузке для проверки | |
/* | |
setTimeout(() => { | |
createWindow({ | |
title: 'Подсказка', | |
icon: 'default-app-icon.png', | |
content: '<div style="padding: 20px; text-align: center;"><h3>Добро пожаловать в Windows 10 Simulator!</h3><p>Нажмите на кнопку <strong>Пуск</strong> в левом нижнем углу, чтобы открыть меню "Пуск".</p><p>Вы также можете кликнуть по иконкам на рабочем столе, чтобы открыть программы.</p></div>', | |
width: 400, | |
height: 200, | |
x: 200, | |
y: 150, | |
isActive: true | |
}); | |
}, 1000); | |
*/ | |
// Добавляем прямой обработчик кнопки "Пуск", заменяя все предыдущие | |
setTimeout(() => { | |
console.log('Настройка обработчика кнопки "Пуск"'); | |
const startButton = document.getElementById('start-button'); | |
const startMenu = document.getElementById('start-menu'); | |
if (startButton && startMenu) { | |
// Удаляем предыдущие обработчики с кнопки "Пуск" | |
startButton.addEventListener('click', (event) => { | |
event.stopPropagation(); | |
console.log('Клик по кнопке "Пуск" в main.js'); | |
// Переключаем класс active для меню | |
const isActive = startMenu.classList.contains('active'); | |
if (isActive) { | |
console.log('Скрываем меню "Пуск"'); | |
startMenu.classList.remove('active'); | |
startButton.classList.remove('active'); | |
} else { | |
console.log('Показываем меню "Пуск"'); | |
startMenu.classList.add('active'); | |
startButton.classList.add('active'); | |
// Проверка видимости меню после добавления класса active | |
setTimeout(() => { | |
const computedStyle = window.getComputedStyle(startMenu); | |
console.log(`Проверка стилей меню: opacity=${computedStyle.opacity}, transform=${computedStyle.transform}`); | |
}, 50); | |
} | |
}); | |
// Добавляем обработчик для закрытия меню при клике вне его | |
document.addEventListener('click', (event) => { | |
// Проверяем, открыто ли меню и кликнули ли мы вне его | |
if (startMenu.classList.contains('active') && | |
!startMenu.contains(event.target) && | |
!startButton.contains(event.target)) { | |
console.log('Клик вне меню "Пуск", закрываем'); | |
startMenu.classList.remove('active'); | |
startButton.classList.remove('active'); | |
} | |
}); | |
console.log('Обработчик события для кнопки "Пуск" установлен'); | |
} else { | |
console.error('Не найдена кнопка "Пуск" или меню "Пуск"'); | |
} | |
}, 500); | |
}); | |