CSS+Javascript+Html日历控件

这篇具有很好参考价值的文章主要介绍了CSS+Javascript+Html日历控件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近,因需要用HTML+JAVASCRIPT+CSS实现了一个日历控件,效果如下:
CSS+Javascript+Html日历控件,css,JavaScript,css,javascript,html
单击上月、下月进行日历切换。当前日期在日历中变颜色标注显示。还是老老套路、老方法,分HML+CSS+JAVASCRIPT三部分代码。

一、html代码

<h1>学习计划</h1>	
	<div class="month">      
	  <ul>
	    <li class="prev"><上月</li>
	    <li class="next">下月></li>
	    <li style="text-align:center"><span id="monthbox">10月</span><br>
	      <span style="font-size:18px" id="yearbox">2023年</span>
	    </li>
	  </ul>
	</div>
	
	<ul class="weekdays">
	  <li>星期一</li>
	  <li>星期二</li>
	  <li>星期三</li>
	  <li>星期四</li>
	  <li>星期五</li>
	  <li>星期六</li>
	  <li>星期日</li>
	</ul>	
	<ul class="days"></ul>	

这段代码主要包含三个部分,一是头部显示年月,上月、下月切换按钮;二是显示星期一到日;三是日期容器,存在日期。

二、CSS代码

* {box-sizing:border-box;}
		ul {list-style-type: none;}
		body {font-family: Verdana,sans-serif;}		
		.month {padding: 70px 25px;width: 100%;background: #1abc9c;}		
		.month ul {margin: 0;padding: 0;}		
		.month ul li {color: white;font-size: 20px;text-transform: uppercase;letter-spacing: 3px;}		
		.month .prev {float: left;padding-top: 10px;cursor: pointer;}		
		.month .next {float: right;padding-top: 10px;cursor: pointer;}		
		.weekdays {margin: 0;padding: 10px 0;background-color: #ddd;}		
		.weekdays li {display: inline-block;width: 13.6%;color: #666;text-align: center;}		
		.days {padding: 10px 0;background: #eee;margin: 0;}		
		.days li {list-style-type: none;display: inline-block;width: 13.6%;text-align: center;margin-bottom: 5px;font-size:12px;color: #777;}		
		.days li .active {padding: 5px;background: #1abc9c;color: white !important}		
		/* Add media queries for smaller screens */
		@media screen and (max-width:720px) {.weekdays li, .days li {width: 13.1%;}}		
		@media screen and (max-width: 420px) {.weekdays li, .days li {width: 12.5%;} .days li .active {padding: 2px;}}
		@media screen and (max-width: 290px) {.weekdays li, .days li {width: 12.2%;}}

这段代码主要定义了日历的样式,一个主要的方法简述如下:

  1. box-sizing:border-box;就是将border和padding数值包含在width和height之内,这样的好处就是修改border和padding数值盒子的大小不变。
  2. @media screen and (max-width:720px) 。表示当浏览器的可视区域小于720px时候,执行。

三、Javascript代码

<script type="text/javascript">
	     var currentDate=new Date();
		function showDateList(){
			let year = currentDate.getFullYear();
			let month = currentDate.getMonth()+1;
			let date = currentDate.getDate();
			let firstWeekDay = new Date(year,month-1,1).getDay();
			let monthDays = new Date(year,month,0).getDate();
			let str="";
			let daylength = monthDays+firstWeekDay-1;
			let startDay = firstWeekDay-1
			if(firstWeekDay==0) {
				daylength =monthDays+6;
				startDay=6;
			}
			for (var i = 0; i <daylength ; i++) {
				if(i<startDay)
				{
					str +="<li></li>"
				}
				else
				{
					let today = new Date();
					let todate =(i-startDay+1);
					console.log(date)
					if(year == today.getFullYear() && month == today.getMonth()+1 &&todate== today.getDate())
					{
						str +="<li><span class='active'>"+todate+"</span></li>";
					}
					else{
						str +="<li>"+todate+"</li>";
					}					
				}
			}
			document.querySelector("#monthbox").innerHTML=month+"月";
			document.querySelector("#yearbox").innerHTML=year+"年";
			document.querySelector(".days").innerHTML=str;
		}
		showDateList();
		document.querySelector(".next").onclick= function(){
			currentDate.setMonth(currentDate.getMonth() + 1);
			showDateList();
		}
		document.querySelector(".prev").onclick= function(){
			currentDate.setMonth(currentDate.getMonth() - 1);
			showDateList();
		}
	</script>	

此段代码实现了当月日历情况,单击上月、下月进行月份切换。
这样我们的日历就成型了,完整代码如下,请参考:文章来源地址https://www.toymoban.com/news/detail-734000.html

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
    <title></title>
	<style>
		* {box-sizing:border-box;}
		ul {list-style-type: none;}
		body {font-family: Verdana,sans-serif;}
		
		.month {padding: 70px 25px;width: 100%;background: #1abc9c;}		
		.month ul {margin: 0;padding: 0;}		
		.month ul li {color: white;font-size: 20px;text-transform: uppercase;letter-spacing: 3px;}		
		.month .prev {float: left;padding-top: 10px;cursor: pointer;}		
		.month .next {float: right;padding-top: 10px;cursor: pointer;}		
		.weekdays {margin: 0;padding: 10px 0;background-color: #ddd;}		
		.weekdays li {display: inline-block;width: 13.6%;color: #666;text-align: center;}		
		.days {padding: 10px 0;background: #eee;margin: 0;}		
		.days li {list-style-type: none;display: inline-block;width: 13.6%;text-align: center;margin-bottom: 5px;font-size:12px;color: #777;}		
		.days li .active {padding: 5px;background: #1abc9c;color: white !important}		
		/* Add media queries for smaller screens */
		@media screen and (max-width:720px) {.weekdays li, .days li {width: 13.1%;}}		
		@media screen and (max-width: 420px) {.weekdays li, .days li {width: 12.5%;} .days li .active {padding: 2px;}}
		@media screen and (max-width: 290px) {.weekdays li, .days li {width: 12.2%;}}
	</style>
    
</head>
<body>
	
	<h1>学习计划</h1>	
	<div class="month">      
	  <ul>
	    <li class="prev"><上月</li>
	    <li class="next">下月></li>
	    <li style="text-align:center"><span id="monthbox">10月</span><br>
	      <span style="font-size:18px" id="yearbox">2023年</span>
	    </li>
	  </ul>
	</div>
	
	<ul class="weekdays">
	  <li>星期一</li>
	  <li>星期二</li>
	  <li>星期三</li>
	  <li>星期四</li>
	  <li>星期五</li>
	  <li>星期六</li>
	  <li>星期日</li>
	</ul>	
	<ul class="days"></ul>	
	<script type="text/javascript">
	     var currentDate=new Date();
		function showDateList(){
			let year = currentDate.getFullYear();
			let month = currentDate.getMonth()+1;
			let date = currentDate.getDate();
			let firstWeekDay = new Date(year,month-1,1).getDay();
			let monthDays = new Date(year,month,0).getDate();
			let str="";
			let daylength = monthDays+firstWeekDay-1;
			let startDay = firstWeekDay-1
			if(firstWeekDay==0) {
				daylength =monthDays+6;
				startDay=6;
			}
			for (var i = 0; i <daylength ; i++) {
				if(i<startDay)
				{
					str +="<li></li>"
				}
				else
				{
					let today = new Date();
					let todate =(i-startDay+1);
					console.log(date)
					if(year == today.getFullYear() && month == today.getMonth()+1 &&todate== today.getDate())
					{
						str +="<li><span class='active'>"+todate+"</span></li>";
					}
					else{
						str +="<li>"+todate+"</li>";
					}
					
				}
			}
			document.querySelector("#monthbox").innerHTML=month+"月";
			document.querySelector("#yearbox").innerHTML=year+"年";
			document.querySelector(".days").innerHTML=str;
		}
		showDateList();
		document.querySelector(".next").onclick= function(){
			currentDate.setMonth(currentDate.getMonth() + 1);
			showDateList();
		}
		document.querySelector(".prev").onclick= function(){
			currentDate.setMonth(currentDate.getMonth() - 1);
			showDateList();
		}
	</script>	
</body>
</html>

到了这里,关于CSS+Javascript+Html日历控件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 前端= 结构(HTML)+ 样式(CSS)+ 行为(JavaScript)

    前端开发确实涵盖了行为(JavaScript)、样式(CSS)和结构(HTML)这三个主要方面。这三个方面在前端开发中密切协作,共同构建用户界面和用户体验。 结构(Structure):HTML 是用于定义页面结构的标记语言。通过使用 HTML 标签,可以创建网页的基本骨架,包括标题、段落、

    2024年02月13日
    浏览(63)
  • 【简单的留言墙】HTML+CSS+JavaScript

                                             1.首先我们用HTML的一些标签,初步构造区域 样式。                                                                                2.上面操作已经初步完成布局,接下来在style标签中书写CSS代码,利用各种选择器设置。

    2024年02月07日
    浏览(46)
  • HTML+CSS+JavaScript入门教程(万字)

    作为一名后端开发人员,开发过程中,必不可少的与前端进行对接,因此尽管是后端开发者,也需要一定的前端知识,因此写下HTML+CSS+JavaScript入门知识,着重介绍了JavaScript,方便自己复习,也各位小伙伴参考。 1.1什么是HTML HTML是一门语言,所有的网页都是用HTML这门语言编写

    2024年02月14日
    浏览(49)
  • HTML+CSS+JavaScript:轮播图自动播放

    轮播图如下图所示,需求是每隔一秒轮播图自动切换一次   以下是缺失JS部分的代码,感兴趣的小伙伴可以先自己试着写一写 1、将代码素材在浏览器中打开,并按F12进入开发者模式,分析各个HTML标签在轮播图中的位置及作用 2、获取相关元素 3、利用间歇函数实现一秒切换一

    2024年02月14日
    浏览(47)
  • [前端开发] 常见的 HTML CSS JavaScript 事件

    代码示例指路 常见的 HTML、CSS、JavaScript 事件代码示例 在 Web 开发中,事件是用户与网页交互的重要方式之一。通过事件,用户可以与页面元素进行交互,触发相应的功能或效果。本文将介绍常见的 HTML、CSS、JavaScript 事件,以及事件对象和事件代理的概念。 鼠标事件 鼠标事

    2024年02月19日
    浏览(56)
  • 简单的倒计时(html + css + javaScript)

    这个页面包含一个输入日期的输入框、一个“开始倒计时”的按钮以及一个显示倒计时的元素。当用户点击按钮时,会通过JavaScript获取输入的日期,并开始一个定时器,每秒更新倒计时并随机改变颜色。当倒计时结束时,定时器会被清除,倒计时元素将显示\\\"倒计时已结束\\\",

    2024年02月03日
    浏览(48)
  • 前端随笔:HTML/CSS/JavaScript和Vue

    最近因为工作需要,需要接触一些前端的东西。之前虽然大体上了解过 HTML 、 CSS 和 JavaScript ,也知道 HTML 定义了内容、 CSS 定义了样式、 JavaScript 定义了行为,但是却没有详细的学习过前端三件套的细节。而最近的工作中需要使用 Vue ,并且想到未来的工作中使用 Vue 能够更

    2024年02月16日
    浏览(44)
  • 前端:运用HTML+CSS+JavaScript实现拼图游戏

    前一段时间突然来了一个想法,就是运用前端知识实现一个拼图游戏,但是不知道具体怎样实现。今天,想到既然实现不了现实中我们看到的那种拼块,那么就用正方形来代替吧! 效果如下: 想到就是当小的图片块放到合适的位置上时,表示拼图完成。 1. 前端布局 运用cs

    2024年02月08日
    浏览(62)
  • HTML+CSS+JavaScript实现网络购物车

    1 页面布局 购物车由一个table标签和一个div标签构成。案例在Chrome浏览器运行效果,如图所示。 table标签共有5行6列,第1行是表头,第2-5行的每一行都代表一个商品,依次用td标签存放商品的勾选框、商品缩略图及名称、商品单价、商品增减操作按钮以及小计、删除按钮等。

    2024年02月05日
    浏览(49)
  • 【HTML+CSS+JavaScript】实现鼠标点击烟花效果

    本文主要讲解三种烟花效果(爆炸型、心型、圆形),文章末尾附有完整的代码和图片获取链接。 效果图(一) - 心型 : 效果图(二) - 圆型 : 效果图(三) - 爆炸型 : (1) HTML部分代码 (2) CSS部分代码 (3) 内部的JavaScript部分代码 (1) HTML部分代码 (2) CSS部分代码 (3) 内部的JavaScript部分

    2024年02月01日
    浏览(91)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包