js/main.js · 约 3636 字符
1\
2(function(){
3 var page=(location.pathname.split('/').pop()||'index.html').replace('.html','');
4 document.querySelectorAll('.tabbar a').forEach(function(a){if(a.getAttribute('href')===page+'.html')a.classList.add('on');});
5 function toast(m){var t=document.createElement('div');t.className='toast';t.textContent=m;document.body.appendChild(t);requestAnimationFrame(function(){t.classList.add('show');});setTimeout(function(){t.classList.remove('show');setTimeout(function(){t.remove();},300);},1700);}
6 if(page==='schedule'){
7 var d=new Date().getDay();var map={1:'mon',2:'tue',3:'wed',4:'thu',5:'fri'};
8 var id=map[d];if(id){var r=document.getElementById(id);if(r)r.classList.add('today');}
9 }
10 if(page==='homework'){
11 var KEY='c01_hw';
12 function g(){try{return JSON.parse(localStorage.getItem(KEY))||{}}catch(e){return{}}}
13 function s(o){localStorage.setItem(KEY,JSON.stringify(o))}
14 function rf(){var st=g();var tot=document.querySelectorAll('.hw').length;var done=0;document.querySelectorAll('.hw').forEach(function(el){var i=el.getAttribute('data-id');if(st[i]){el.classList.add('done');done++;}else el.classList.remove('done');});var p=document.getElementById('hwProg');if(p)p.textContent='已完成 '+done+' / '+tot;}
15 document.querySelectorAll('.hw').forEach(function(el){el.addEventListener('click',function(){var st=g();var i=el.getAttribute('data-id');if(st[i])delete st[i];else st[i]=1;s(st);rf();toast(st[i]?'已标记完成 ✅':'已取消');});});
16 rf();
17 }
18 if(page==='album'){
19 var lb=document.getElementById('lb'),box=document.getElementById('lbBox');
20 document.querySelectorAll('.photo').forEach(function(p){p.addEventListener('click',function(){box.style.background=p.getAttribute('data-bg');box.textContent=p.getAttribute('data-emoji');lb.classList.add('show');});});
21 lb.addEventListener('click',function(){lb.classList.remove('show');});
22 }
23 if(page==='message'){
24 var KEY='c01_msgs';
25 function g(){try{return JSON.parse(localStorage.getItem(KEY))||null}catch(e){return null}}
26 function s(a){localStorage.setItem(KEY,JSON.stringify(a))}
27 var seed=[{name:'班长·林晓',text:'欢迎来到高二(3)班留言板,有困难一起扛,有快乐一起分享!',like:15,time:'09-01'},{name:'学委·陈宇',text:'这次月考数学进步很大,大家继续加油💪',like:9,time:'09-12'},{name:'生活委·苏琪',text:'教室绿植又长新芽啦,记得课间给它们一点阳光~',like:6,time:'09-20'}];
28 var msgs=g();if(msgs===null){msgs=seed;s(seed);}
29 var list=document.getElementById('msgList');
30 function render(){list.innerHTML='';msgs.forEach(function(m,idx){var el=document.createElement('div');el.className='msg';el.innerHTML='<div class="msg-h"><b>'+m.name+'</b><span class="msg-t">'+m.time+'</span></div><div class="msg-b">'+m.text+'</div><button class="like" data-i="'+idx+'">❤ '+m.like+'</button>';list.appendChild(el);});}
31 render();
32 list.addEventListener('click',function(e){var b=e.target.closest('.like');if(!b)return;var i=+b.getAttribute('data-i');msgs[i].like++;s(msgs);render();});
33 var form=document.getElementById('msgForm');
34 form.addEventListener('submit',function(e){e.preventDefault();var nm=document.getElementById('msgName').value.trim()||'匿名同学';var tx=document.getElementById('msgText').value.trim();if(!tx){toast('说点什么吧~');return;}var dt=new Date();var t=('0'+(dt.getMonth()+1)).slice(-2)+'-'+('0'+dt.getDate()).slice(-2);msgs.unshift({name:nm,text:tx,like:0,time:t});s(msgs);render();form.reset();toast('留言已发布 🎉');});
35 }
36})();
37