首页/ mobileweb/ 追光班 · 班级主页 H5/ 代码预览

💻 代码预览 · 追光班 · 班级主页 H5

mw_edu · 上传者 驰旭教育
← 返回详情
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