win / js /main.js
igorvkarpov's picture
Upload 24 files
cdf0905 verified
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);
});