Spaces:
Running
Running
File size: 6,381 Bytes
cdf0905 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 |
// Переменные для управления меню "Пуск"
let isStartMenuVisible = false;
let startMenu = null;
// Функция для создания меню "Пуск"
function initializeStartMenu() {
console.log('Инициализация меню "Пуск"');
// Проверяем, существует ли уже меню "Пуск"
if (document.getElementById('start-menu')) {
console.log('Меню "Пуск" уже существует');
startMenu = document.getElementById('start-menu');
// Добавляем обработчики событий для приложений в меню "Пуск"
const appElements = startMenu.querySelectorAll('.start-menu-app');
appElements.forEach(appElement => {
const appId = appElement.dataset.appId;
appElement.addEventListener('click', () => {
console.log(`Клик по приложению в меню Пуск: ${appId}`);
launchApp(appId);
toggleStartMenu(); // Закрываем меню "Пуск" после запуска приложения
});
});
return;
}
// Создаем меню "Пуск"
startMenu = document.createElement('div');
startMenu.id = 'start-menu';
// Создаем заголовок меню "Пуск"
const startMenuHeader = document.createElement('div');
startMenuHeader.id = 'start-menu-header';
const userIcon = document.createElement('img');
userIcon.src = 'src/images/user-icon.png';
userIcon.alt = 'Пользователь';
const userName = document.createElement('span');
userName.textContent = 'Пользователь';
startMenuHeader.appendChild(userIcon);
startMenuHeader.appendChild(userName);
startMenu.appendChild(startMenuHeader);
// Создаем контейнер для приложений в меню "Пуск"
const startMenuApps = document.createElement('div');
startMenuApps.id = 'start-menu-apps';
startMenu.appendChild(startMenuApps);
// Добавляем приложения в меню "Пуск"
const apps = [
{ name: 'Браузер', icon: 'browser-icon.png', appId: 'browser' },
/*{ name: 'Проводник', icon: 'explorer-icon.png', appId: 'explorer' },
{ name: 'Калькулятор', icon: 'calculator-icon.png', appId: 'calculator' },
{ name: 'Заметки', icon: 'notepad-icon.png', appId: 'notepad' },
{ name: 'Фотографии', icon: 'photos-icon.png', appId: 'photos' },*/
{ name: 'Настройки', icon: 'settings-icon.png', appId: 'settings' }
];
apps.forEach(app => {
const appElement = document.createElement('div');
appElement.className = 'start-menu-app';
appElement.dataset.appId = app.appId;
const appIcon = document.createElement('img');
appIcon.src = `src/images/${app.icon}`;
appIcon.alt = app.name;
const appName = document.createElement('span');
appName.textContent = app.name;
appElement.appendChild(appIcon);
appElement.appendChild(appName);
startMenuApps.appendChild(appElement);
// Добавляем обработчик клика
appElement.addEventListener('click', () => {
console.log(`Клик по приложению в меню Пуск: ${app.name}`);
launchApp(app.appId);
toggleStartMenu(); // Закрываем меню "Пуск" после запуска приложения
});
});
// Добавляем меню "Пуск" в DOM - сразу после body, чтобы избежать проблем с z-index
document.body.insertBefore(startMenu, document.body.firstChild);
console.log('Меню "Пуск" добавлено в DOM');
// Добавляем обработчик события для закрытия меню "Пуск" при клике вне его
document.addEventListener('mousedown', (e) => {
if (
isStartMenuVisible &&
startMenu &&
!startMenu.contains(e.target) &&
e.target.id !== 'start-button' &&
!e.target.closest('#start-button')
) {
console.log('Клик вне меню "Пуск", закрываем меню');
toggleStartMenu();
}
});
// Принудительно обновляем меню "Пуск" для стилей
setTimeout(() => {
if (startMenu) {
startMenu.style.display = 'flex';
console.log('Стили меню "Пуск" обновлены');
}
}, 100);
}
// Функция для показа/скрытия меню "Пуск"
function toggleStartMenu() {
console.log('Вызов функции toggleStartMenu');
// Получаем меню и кнопку по необходимости
const startMenu = document.getElementById('start-menu');
const startButton = document.getElementById('start-button');
if (!startMenu) {
console.error('Меню "Пуск" не найдено в DOM');
return;
}
// Определяем текущее состояние
const isActive = startMenu.classList.contains('active');
console.log(`Переключение меню "Пуск": ${isActive ? 'скрыть' : 'показать'}`);
// Переключаем классы
if (isActive) {
startMenu.classList.remove('active');
if (startButton) startButton.classList.remove('active');
console.log('Меню "Пуск" скрыто');
} else {
startMenu.classList.add('active');
if (startButton) startButton.classList.add('active');
console.log('Меню "Пуск" активировано');
// Проверка видимости
setTimeout(() => {
const computedStyle = window.getComputedStyle(startMenu);
console.log(`Меню "Пуск" видимость: opacity=${computedStyle.opacity}, transform=${computedStyle.transform}`);
}, 50);
}
} |