// 页面切换功能 function showPage(pageId) { // 隐藏所有页面 const pages = document.querySelectorAll('.container'); pages.forEach(page => { page.classList.add('hidden'); }); // 显示目标页面 const targetPage = document.getElementById(pageId); if (targetPage) { targetPage.classList.remove('hidden'); } // 更新底部导航状态 updateBottomNav(pageId); } // 更新底部导航状态 function updateBottomNav(activePageId) { const navItems = document.querySelectorAll('.nav-item'); navItems.forEach(item => { item.classList.remove('active'); }); // 根据页面ID设置对应的导航项为活跃状态 const pageNavMap = { 'home-page': 0, 'smart-page': 1, 'mall-page': 2, 'profile-page': 4 }; const activeIndex = pageNavMap[activePageId]; if (activeIndex !== undefined) { const currentPageNavItems = document.querySelectorAll(`#${activePageId} .nav-item`); if (currentPageNavItems[activeIndex]) { currentPageNavItems[activeIndex].classList.add('active'); } } } // 设备控制功能 function toggleDevice(deviceElement) { deviceElement.classList.toggle('active'); // 模拟设备状态切换 const statusElement = deviceElement.querySelector('.device-status'); const deviceName = deviceElement.querySelector('.device-name').textContent; if (deviceElement.classList.contains('active')) { // 保持原有状态信息,只更新开启状态 const originalStatus = statusElement.textContent; if (!originalStatus.includes('已开启')) { statusElement.textContent = originalStatus.replace('设备离线', '已开启'); } showToast(`${deviceName} 已开启`); } else { // 恢复为离线状态 const originalStatus = statusElement.textContent; statusElement.textContent = originalStatus.replace('已开启', '设备离线'); showToast(`${deviceName} 已关闭`); } } // 场景执行功能 function executeScene(sceneName) { // 显示执行提示 showToast(`正在执行"${sceneName}"场景...`); // 模拟场景执行 setTimeout(() => { showToast(`"${sceneName}"场景执行完成`); }, 2000); } // 显示提示信息 function showToast(message) { // 创建提示元素 const toast = document.createElement('div'); toast.className = 'toast'; toast.textContent = message; // 添加样式 toast.style.cssText = ` position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); background-color: rgba(0, 0, 0, 0.8); color: white; padding: 12px 20px; border-radius: 8px; font-size: 14px; z-index: 9999; animation: fadeInOut 3s ease-in-out; `; // 添加动画样式 if (!document.querySelector('#toast-styles')) { const style = document.createElement('style'); style.id = 'toast-styles'; style.textContent = ` @keyframes fadeInOut { 0% { opacity: 0; transform: translate(-50%, -50%) scale(0.8); } 20% { opacity: 1; transform: translate(-50%, -50%) scale(1); } 80% { opacity: 1; transform: translate(-50%, -50%) scale(1); } 100% { opacity: 0; transform: translate(-50%, -50%) scale(0.8); } } `; document.head.appendChild(style); } document.body.appendChild(toast); // 3秒后移除提示 setTimeout(() => { if (toast.parentNode) { toast.parentNode.removeChild(toast); } }, 3000); } // 房间切换功能 function switchRoom(roomName) { // 更新房间标签状态 const roomTabs = document.querySelectorAll('.room-tab'); roomTabs.forEach(tab => { tab.classList.remove('active'); if (tab.textContent === roomName) { tab.classList.add('active'); } }); // 模拟房间设备过滤 - 显示/隐藏相关设备 const deviceCards = document.querySelectorAll('.device-card'); deviceCards.forEach(card => { const deviceStatus = card.querySelector('.device-status').textContent; if (roomName === '全屋') { // 显示所有设备 card.style.display = 'flex'; } else { // 根据房间名称过滤设备 if (deviceStatus.includes(roomName)) { card.style.display = 'flex'; } else { card.style.display = 'none'; } } }); showToast(`已切换到"${roomName}"`); } // 智能场景标签切换 function switchSmartTab(tabName) { const tabs = document.querySelectorAll('.tab'); tabs.forEach(tab => { tab.classList.remove('active'); if (tab.textContent === tabName) { tab.classList.add('active'); } }); // 根据标签显示不同内容 if (tabName === '自定义') { showCustomScenes(); } else { showRecommendedScenes(); } } // 显示推荐场景 function showRecommendedScenes() { // 这里可以动态加载推荐场景 console.log('显示推荐场景'); } // 显示自定义场景 function showCustomScenes() { const sceneSection = document.querySelector('.scene-section'); if (sceneSection) { sceneSection.innerHTML = `
添加自定义场景
创建个性化的智能场景
批量控制
空调关空调
自动化
进入TP-LINK_9CC6-向手机发送通知
`; } } // 页面加载完成后的初始化 document.addEventListener('DOMContentLoaded', function() { // 绑定设备卡片点击事件 const deviceCards = document.querySelectorAll('.device-card'); deviceCards.forEach(card => { card.addEventListener('click', function() { toggleDevice(this); }); }); // 绑定场景按钮点击事件 const sceneButtons = document.querySelectorAll('.scene-button'); sceneButtons.forEach(button => { button.addEventListener('click', function(e) { e.stopPropagation(); const sceneName = this.parentElement.querySelector('.scene-name').textContent; executeScene(sceneName); }); }); // 绑定房间标签点击事件 const roomTabs = document.querySelectorAll('.room-tab'); roomTabs.forEach(tab => { tab.addEventListener('click', function() { switchRoom(this.textContent); }); }); // 绑定智能场景标签点击事件 const smartTabs = document.querySelectorAll('.tab'); smartTabs.forEach(tab => { tab.addEventListener('click', function() { switchSmartTab(this.textContent); }); }); // 底部导航切换 const navItems = document.querySelectorAll('.nav-item'); navItems.forEach(item => { item.addEventListener('click', () => { const targetPage = item.dataset.page; // 特殊处理商城页面,显示外部链接 if (targetPage === 'mall') { showPage('mall-page-external'); } else { showPage(targetPage); } // 更新导航状态 navItems.forEach(nav => nav.classList.remove('active')); item.classList.add('active'); }); }); // 绑定菜单项点击事件 const menuItems = document.querySelectorAll('.menu-item'); menuItems.forEach(item => { item.addEventListener('click', function() { const menuName = this.querySelector('span').textContent; showToast(`打开"${menuName}"功能`); }); }); // 模拟实时数据更新 setInterval(updateSensorData, 30000); // 每30秒更新一次传感器数据 }); // 更新传感器数据 function updateSensorData() { const tempDisplays = document.querySelectorAll('.temp-display'); tempDisplays.forEach(display => { const currentTemp = parseFloat(display.textContent); const newTemp = (currentTemp + (Math.random() - 0.5) * 2).toFixed(1); display.textContent = newTemp + '°'; }); const humidityDisplays = document.querySelectorAll('.humidity-display'); humidityDisplays.forEach(display => { const currentHumidity = parseInt(display.textContent); const newHumidity = Math.max(30, Math.min(70, currentHumidity + Math.floor((Math.random() - 0.5) * 10))); display.textContent = newHumidity + '%'; }); } // 添加触摸反馈 function addTouchFeedback() { const interactiveElements = document.querySelectorAll('.device-card, .scene-item, .menu-item, .nav-item'); interactiveElements.forEach(element => { element.addEventListener('touchstart', function() { this.style.transform = 'scale(0.95)'; this.style.transition = 'transform 0.1s'; }); element.addEventListener('touchend', function() { this.style.transform = 'scale(1)'; }); element.addEventListener('touchcancel', function() { this.style.transform = 'scale(1)'; }); }); } // 在页面加载完成后添加触摸反馈 document.addEventListener('DOMContentLoaded', addTouchFeedback); // 导出函数供HTML使用 window.showPage = showPage; window.executeScene = executeScene; window.toggleDevice = toggleDevice; window.switchRoom = switchRoom; window.switchSmartTab = switchSmartTab;