使用原生js仿写win10时钟
2021-05-01 18:28
标签:mon cloc 很多 web前端 top list bottom content 运用 学习web前端已经一月了,突然就像做一点什么,于是就仿写了一个win10时钟(农历计算准确度太差,于是就忽略不写了~~) 一、HTML布局 二、CSS样式 三、js原生代码 首先对页面进行初始化,对日历、月历、年历切换进行控制,以及回到当前时间进行控制~!~ 然后,对日历、农历、年历动态显示进行控制,对上下翻页这只时运用了递归的思路~ 最后是动画控制的小程序及其它小程序 学习了一个月,很多编程习惯还没养成,存在诸多瑕疵~~不过从一个编程小白能写出这样的效果,暂时还是满足了,以后继续加油了! 使用原生js仿写win10时钟 标签:mon cloc 很多 web前端 top list bottom content 运用 原文地址:http://www.cnblogs.com/Hope-li/p/7780683.html 1
28
30
33
35
39
41
44
46 1 body{margin:0px;}
2 ul{margin:0px;padding:0px;}
3 li{list-style:none;}
4 .mclear:after{content:"";clear:both;display:block;}
5 .wrap{height:620px;width:450px;background-color:#10446c;margin:20px auto;}
6 .time-present{border-bottom:1px solid #3e6f97;}
7 .time-local{margin-top:26px;font:40px/60px "times new roman";color:#f0ffff;text-indent:30px;}
8 .time-dty{font:20px/40px "微软雅黑";color:#4091d3;margin-bottom:18px;text-indent:30px;}
9 .times-bar{margin-top:8px;font:18px/48px "微软雅黑";text-indent:30px;color:#dfdfdf;position:relative;}
10 #up{ position:absolute; top:18px; right:100px; }
11 #down{ position:absolute; top:18px; right:40px; }
12 #oym,#oy,#oyy{float:left;}
13 #oym{display:block;}
14 #oy,#oyy{display:none;}
15 .daylists{display:block;}
16 .daylist{width:450px;height:300px;overflow:hidden;}
17 .daylist ul{position:relative;}
18 .weeklist ul,.daylist ul{ margin-left:20px;}
19 .weeklist ul li,.daylist ul li{ float:left; width:52px; height:44px; border:3px solid #10446c; text-align:center; }
20 .weeklist ul li{ font:13px/44px "微软雅黑"; color:#ffffff; }
21 .daylist ul li{ font:13px/44px "微软雅黑"; color:#708fa7;}
22 .monthlist,.yearlist{display:none;width:450px;height:350px;overflow:hidden;}
23 .monthlist ul,.yearlist ul{position:relative;}
24 .monthlist ul,.yearlist ul{ margin-left:16px; }
25 .monthlist ul li,.yearlist ul li{ float:left; width:97px; height:82px; border:3px solid #10446c; font:13px/82px "微软雅黑"; text-align:center; color:#708fa7; }
26 .daylist ul li:hover,.monthlist ul li:hover,.yearlist ul li:hover{ border:3px solid #708fa7; }
27 .active{ color:#ffffff !important; }
28 .chsed{ border:3px solid #4097dc !important;}
1 //页面初始化
2 clock();
3 oYearb.innerHTML=oYrs.innerHTML;
4 oMonb.innerHTML=oMon.innerHTML;
5 oSwitch(0);
6 getDaysList(oYrs.innerHTML,oMon.innerHTML,oDay.innerHTML,oYearb.innerHTML,oMonb.innerHTML);
7 setInterval(clock,1000);
8 //展示区功能扩展
9 oDty[0].onclick=function(){//回到当前时间
10 oSwitch(0);
11 scaleShow(oDisp[0],300);
12 oMonb.innerHTML=oMon.innerHTML;
13 oYearb.innerHTML=oYrs.innerHTML;
14 getDaysList(oYrs.innerHTML,oMon.innerHTML,oDay.innerHTML,oYrs.innerHTML,oMon.innerHTML);
15 }
16
17 oym.onclick=function(){//切换至月历
18 oSwitch(1);
19 scaleShow(oMonthList[0],300);
20 getList(oYrs.innerHTML,oMon.innerHTML,oys.innerHTML)
21 }
22 oy.onclick=function(){//切换至年历
23 oSwitch(2);
24 scaleShow(oYearList[0],300);
25 var oNum1=Math.floor((Number(oys.innerHTML)-oYearBgn)/10);
26 oybgn.innerHTML=oYearBgn+oNum1*10;
27 oyend.innerHTML=oYearBgn+oNum1*10+9;
28 getList(oYrs.innerHTML,oMon.innerHTML,oybgn.innerHTML,oyend.innerHTML)
29 }
30 for (var i=0;i
1 function getDaysList(y,m,d,yb,mb){
2 //日期显示
3 oBtnUp.onclick=null;
4 oBtnDown.onclick=null;
5 y=Number(y);
6 m=Number(m);
7 d=Number(d);
8 yb=Number(yb);
9 mb=Number(mb);
10 var aWeekday=[‘一‘,‘二‘,‘三‘,‘四‘,‘五‘,‘六‘,‘日‘];
11 var oWeek=weekday(yb,mb,1);
12 var oNow=getDaysInMonth(yb,mb)
13 var oNum=0;
14 var otemp=0;
15 var otemps=0;
16 var oUps=0;
17 var oDowns=0;
18 mb==1?(otemp=12,otemps=yb-1):(otemp=mb-1,otemps=yb);
19 oUps=getDaysInMonth(otemps,otemp);
20 for (var j=0;j
1 function weekday(y,m,d){
2 //本计算原理为蔡勒公式,仅适用于 1582 年以后
3 //W=[C/4]-2C+Y+[Y/4]+[13*(M+1)/5]+D-1
4 //W:星期,C:世纪减 1,Y:年后两位,M:月{M=m(当m>2);M=m+12(m
5 //w:星期; w对7取模得:0-星期日,1-星期一,2-星期二,3-星期三,4-星期四,5-星期五,6-星期六
6 y=Number(y,10);
7 m=Number(m,10);
8 d=Number(d,10);
9 if (m;}
10 var aWeekday=[‘日‘,‘一‘,‘二‘,‘三‘,‘四‘,‘五‘,‘六‘]
11 var oC=Math.floor(y/100);//世纪
12 var oY=y%100;//年后两位
13 var w=Math.floor(oC/4)-2*oC+oY+Math.floor(oY/4)+Math.floor(13*(m+1)/5)+d-1;
14 return aWeekday[(w%7+7)%7];
15 }
16 function getDaysInMonth(y,m){
17 //获取当月天数
18 //y年份,m月份
19 m=parseInt(m);
20 var temp=new Date(y,m,0);
21 return temp.getDate();
22 }
23 function scaleShow(elem,speed) {
24 //日历、年历、年历切换动画
25 elem.style.transition=‘0ms‘;
26 elem.style.transform=‘scale(0.5)‘;
27 setTimeout(function () {
28 elem.style.transition=speed+‘ms‘;
29 elem.style.transform=‘scale(1)‘;
30 },0);
31 }
32 function upDownShow(elem,speed,num){
33 //上下切换动画
34 var oHeight=getComputedStyle(elem).height;
35 oHeight=oHeight.substring(0,oHeight.length-2);
36 elem.style.transition=‘0ms‘;
37 if (num==1){
38 elem.style.top=‘-‘+oHeight+‘px‘;
39 }else{
40 elem.style.top=oHeight+‘px‘;
41 }
42 setTimeout(function(){
43 elem.style.transition=speed+‘ms‘;
44 elem.style.top=‘0px‘;
45 },0);
46 }
上一篇:Windows下使用VNC连接CentOS7远程桌面
下一篇:c#基础