我们知道,万年历在人们的生活中是在平常不过的一种东西了,那么怎样用JS来实现在网页中展示一个与众不同万年历呢

1.HTML布局:
<div id="calendar">
<div id="month_year">
<select id="year"></select>年
<select id="month"></select>月
</div>
<ul id="title">
<li>星期日</li>
<li>星期一</li>
<li>星期二</li>
<li>星期三</li>
<li>星期四</li>
<li>星期五</li>
<li>星期六</li>
</ul>
<ul id="datesUl"></ul>
</div>
1.首先在布局上,可以先用一个id为calender(日历)的div将你的万年历包住,以便我们对万年历的位置进行设置;
2.在这个大的div中有三部分: 1. month_year 用以设置年月; 2.title 用以显示星期; 3.detesUl 用以显示具体的日期;
CSS样式:
*{
padding: 0;
margin: 0;
list-style: none;
}
#calendar{
width: 700px;
background-color: lightgray;
margin: 20px auto;
}
#calendar::after{
content: "";
display: block;
clear: both;
}
#month_year{
width: 700px;
height: 50px;
line-height: 50px;
text-align: center;
}
ul > li{
float: left;
width: 100px;
height: 50px;
text-align: center;
line-height: 50px;
}
#datesUl > li:empty{
opacity: 0;
}
#datesUl > li:hover{
background-color: lightblue;
}
JS代码分析:
<script>
var yearSelect = document.getElementById('year');
var monthSelect = document.getElementById('month');
var datesUl = document.getElementById('datesUl');
//初始化
function init(){
for(var year=1990;year<3000;year++){ //初始化俩个选项卡
createOption(year,year,yearSelect);
}
for(var month=1;month<13;month++){
createOption(month,month,monthSelect);
}
var now = new Date(); //获取当前的日期
showSelect(now.getFullYear(),now.getMonth()+1); //引用显示选项卡的函数
showDates(); //调用显示日期的函数
yearSelect.onchange=function(){ //当选项卡改变时
showDates();
};
monthSelect.onchange=function(){
showDates();
}
}
init(); //调用初始化函数
//创建option的函数
function createOption(text,value,parent){
var option = document.createElement('option');
option.innerHTML = text;
option.value = value;
parent.appendChild(option);
}
//获取当前的日期并显示在选项卡中
function showSelect(year,month){
yearSelect.value = year;
monthSelect.value = month;
}
//获取选择的年月的第一天是星期几
function getDays(year,month){
var d = new Date(year,month,1);
return d.getDay();
}
//根当前的select中的年和月来显示日期
function showDates(){
datesUl.innerHTML= "";
var year = yearSelect.value;
var month = monthSelect.value;
//创建空的li
for(var i=0;i<getDays(year,month);i++){
createLi("",datesUl);
}
//创建有日期的li
for(var j=1;j<=getDatesOfMonth(year,month);j++){
createLi(j,datesUl);
}
}
//创建li并添加至对应的容器
function createLi(text,parent){
var li = document.createElement('li');
li.innerHTML = text;
parent.appendChild(li);
}
//创建一个输入年月计算出这个月有几天的函数
function getDatesOfMonth(year,month){
var d = new Date(year,month,0);
return d.getDate();
}
</script>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# JS
# 万年历
# JS制作万年历
# js制作简易年历完整实例
# JS制作可以选项卡切换的年历
# JavaScript实现年历效果
# JavaScript制作年历的示例代码
# 选项卡
# 几天
# 这个月
# 计算出
# 是在
# 在这个
# 中有
# 要用
# 来实现
# 先用
# 创建一个
# 大家多多
# 与众不同
# 星期日
# 以便我们
# 生活中
# getDays
# calender
# innerHTML
# appendChild
相关文章:
如何快速使用云服务器搭建个人网站?
IOS倒计时设置UIButton标题title的抖动问题
非常酷的网站设计制作软件,酷培ai教育官方网站?
香港服务器选型指南:免备案配置与高效建站方案解析
如何解决ASP生成WAP建站中文乱码问题?
如何快速搭建高效WAP手机网站吸引移动用户?
如何通过FTP服务器快速搭建网站?
如何用景安虚拟主机手机版绑定域名建站?
如何选择域名并搭建高效网站?
北京企业网站设计制作公司,北京铁路集团官方网站?
专业公司网站制作公司,用什么语言做企业网站比较好?
香港服务器部署网站为何提示未备案?
公司网站制作费用多少,为公司建立一个网站需要哪些费用?
大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?
如何批量查询域名的建站时间记录?
广州商城建站系统开发成本与周期如何控制?
北京网站制作网页,网站升级改版需要多久?
如何通过VPS建站实现广告与增值服务盈利?
如何构建满足综合性能需求的优质建站方案?
如何在香港免费服务器上快速搭建网站?
如何用VPS主机快速搭建个人网站?
宝塔建站后网页无法访问如何解决?
建站之星会员如何解锁更多建站功能?
高性能网站服务器配置指南:安全稳定与高效建站核心方案
在线教育网站制作平台,山西立德教育官网?
建站IDE高效指南:快速搭建+SEO优化+自适应模板全解析
手机网站制作与建设方案,手机网站如何建设?
北京营销型网站制作公司,可以用python做一个营销推广网站吗?
,石家庄四十八中学官网?
如何用已有域名快速搭建网站?
php8.4新语法match怎么用_php8.4match表达式替代switch【方法】
C#怎么使用委托和事件 C# delegate与event编程方法
陕西网站制作公司有哪些,陕西凌云电器有限公司官网?
建站主机是否等同于虚拟主机?
美食网站链接制作教程视频,哪个教做美食的网站比较专业点?
广州网站建站公司选择指南:建站流程与SEO优化关键词解析
如何优化Golang Web性能_Golang HTTP服务器性能提升方法
盐城做公司网站,江苏电子版退休证办理流程?
jQuery 常见小例汇总
如何在阿里云香港服务器快速搭建网站?
宝塔新建站点报错如何解决?
全景视频制作网站有哪些,全景图怎么做成网页?
,在苏州找工作,上哪个网站比较好?
如何快速生成ASP一键建站模板并优化安全性?
制作企业网站建设方案,怎样建设一个公司网站?
宿州网站制作公司兴策,安徽省低保查询网站?
深圳网站制作平台,深圳市做网站好的公司有哪些?
阿里云高弹*务器配置方案|支持分布式架构与多节点部署
已有域名如何免费搭建网站?
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
*请认真填写需求信息,我们会在24小时内与您取得联系。