Vue简单日历

使用Vue实现简单的日历。

原理分析:
1.获取当前时间
2.显示当前时间
3.点击增加和减少月份
4.大月和小月的天数

效果演示

初始样式(显示现在的日期时间)
在这里插入图片描述
增加一个月
在这里插入图片描述
在程序开始之前一定注意:
引入Vue.js架包

代码演示

Body内容

<script type="text/x-template" id="calendar"><!-- 年份--><div id="year"><!--月份 --><div class="month"><ul><li class="arrow" @click="pickPre(currentYear,currentMonth)"></li><li class="year-month" @click="pickYear(currentYear,currentMonth)"><span class="choosen-year" style="color:blue">{{ currentYear }}</span><span class="choosen-month" style="color:blue">{{ currentMonth }}</span></li><li class="arrow" @click="pickNext(currentYear,currentMonth)"></li></ul></div><!-- 星期 --><ul class="weekdays"><li></li><li></li><li></li><li></li><li></li><li style="color:red"></li><li style="color:red"></li></ul><!-- 日期 --><ul class="days"><!-- 循环--><li v-for="dayobject in days"><!--本月--><span v-if="dayobject.day.getMonth()+1 != currentMonth" class="other-month">{{ dayobject.day.getDate() }}</span><!--判断天数是否正确--><span v-else><!--今天--><span v-if="dayobject.day.getFullYear() == new Date().getFullYear() && dayobject.day.getMonth() == new Date().getMonth() && dayobject.day.getDate() == new Date().getDate()"class="active">{{ dayobject.day.getDate() }}</span><span v-else>{{ dayobject.day.getDate() }}</span></span></li></ul></div></script><div id="app"><calendar></calendar></div>

CSS样式

* {margin: 0;padding: 0;}/*日历*/#calendar {width: 98%;border: 2px solid #A4A7B0;height: 335px;margin-left: 0.5%;}.month {width: 92%;height: 48px;border: 2px solid #FFFFFF;margin-left: 3%;margin-top: 20px;}.month ul {margin: 0;padding: 0;display: flex;margin-top: 11px;justify-content: space-between;}.year-month {flex-direction: column;align-items: center;justify-content: space-around;}.choosen-year {padding: 0 20px;font-size: 16px;font-weight: 200;}.choosen-month {text-align: center;font-size: 16px;font-weight: 200;}.arrow {width: 3%;height: 25px;}.arrow1 {background: url(left.png) no-repeat 0 0 /100% 100%;margin-left: 44px;}.arrow2 {background: url(right.png) no-repeat 0 0 /100% 100%;margin-right: 44px;}.month ul li {color: #999;font-size: 20px;text-transform: uppercase;letter-spacing: 3px;list-style: none;}.weekdays {margin: 0;color: #FFFFFF;background: #A4A7B0;width: 96.6%;margin-top: 26px;height: 34px;line-height: 34px;margin-left: 2.2%;}.weekdays li {display: inline-block;text-align: center;color: #11616f;font-size: 14px;font-weight: 100;width: 12.7%;}.days {padding: 0;margin: 0;display: flex;flex-wrap: wrap;justify-content: space-around;}.days li {list-style-type: none;display: inline-block;width: 14.2%;text-align: center;padding-bottom: 3px;padding-top: 7px;font-size: 12.78px;color: rgb(14, 220, 235);font-weight: 200;}.days li span span {height: 29.5px;width: 27px;line-height: 29.5px;display: inline-block;}.days li .class-30 {background: url(bg_30.png) no-repeat 0 0 /100% 100%;}.days li .class-60 {background: url(bg_60.png) no-repeat 0 0 /100% 100%;}.days li .class-3060 {background: url(bg_3060.png) no-repeat 0 0 /100% 100%;}.days li .other-month {padding: 5px;color: #84a8ae;}

Vue.js内容

Vue.component("calendar", {template: "#calendar",data: function() {return {currentDay: 1,currentMonth: 1,currentYear: 1970,currentWeek: 1,days: [],}},created() {let that = this;that.initData(null);},methods: {initData: function(cur) {let that = this;let leftcount = 0;let date;if (cur) {date = new Date(cur);} else {let now = new Date();let d = new Date(that.formatDate(now.getFullYear(), now.getMonth(), 1));d.setDate(35);date = new Date(that.formatDate(d.getFullYear(), d.getMonth() + 1, 1));}that.currentDay = date.getDate();that.currentYear = date.getFullYear();that.currentMonth = date.getMonth() + 1;that.currentWeek = date.getDay(); // 1...6,0if (that.currentWeek == 0) {that.currentWeek = 7;}let str = that.formatDate(that.currentYear, that.currentMonth, that.currentDay);that.days.length = 0;//初始化for (let i = that.currentWeek - 1; i >= 0; i--) {let d = new Date(str);d.setDate(d.getDate() - i);let dayobject = {}; dayobject.day = d;that.days.push(dayobject); }for (let i = 1; i <= 35 - that.currentWeek; i++) {let d = new Date(str);d.setDate(d.getDate() + i);let dayobject = {};dayobject.day = d;that.days.push(dayobject);}},pickPre: function(year, month) {let that = this;let d = new Date(that.formatDate(year, month, 1));d.setDate(0);that.initData(that.formatDate(d.getFullYear(), d.getMonth() + 1, 1));},pickNext: function(year, month) {let that = this;let d = new Date(that.formatDate(year, month, 1));d.setDate(35);that.initData(that.formatDate(d.getFullYear(), d.getMonth() + 1, 1));},pickYear: function(year, month) {alert(year + "," + month);},// 返回 类似 2016-01-02 格式的字符串formatDate: function(year, month, day) {let y = year;let m = month;if (m < 10) m = "0" + m;let d = day;if (d < 10) d = "0" + d;return y + "-" + m + "-" + d},}})let vm = new Vue({el: '#app',})

到此程序结束。
了解更多关注我呦!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/565761.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【OpenCV 例程 300 篇】102. 陷波带阻滤波器的传递函数

专栏地址&#xff1a;『youcans 的 OpenCV 例程 300篇 - 总目录』 【第 7 章&#xff1a;图像复原与重建】 102. 陷波带阻滤波器的传递函数 103. 陷波带阻滤波器消除周期噪声干扰 【youcans 的 OpenCV 例程 300 篇】102. 陷波带阻滤波器的传递函数 通过频率域滤波可以有效分析并…

SPSS基础操作(一):用幂指数型的权函数建立加权最小二乘回归方程

1、【分析】—【回归】—【权重估计】 2、添加因变量、自变量、权重变量&#xff0c;然后点击【确定】 可以自己该变幂的范围 3、得到的幂值&#xff0c;即m1.5 4、【转换】—【计算变量】 5、目标变量中输入w&#xff0c;填入数字表达式&#xff0c;然后点击【确定】 (提示…

【OpenCV 例程 300 篇】103. 陷波带阻滤波器消除周期噪声干扰

专栏地址&#xff1a;『youcans 的 OpenCV 例程 300篇 - 总目录』 【第 7 章&#xff1a;图像复原与重建】 102. 陷波带阻滤波器的传递函数 103. 陷波带阻滤波器消除周期噪声干扰 【youcans 的 OpenCV 例程 200 篇】103. 陷波带阻滤波器消除周期噪声干扰 4.1 陷波滤波器&#x…

求解非线性方程f (x)= 0的MATLAB数值法指令介绍(solve、fzero的方法与实例)

一、符号方程求解 在MATLAB中&#xff0c;求解用符号表达式表示的代数方程可由函数solve实现&#xff0c;其调用格式为&#xff1a; solve(s)&#xff08;求解符号表达式s的代数方程&#xff0c;求解变量为默认变量&#xff0c;当方程右端为0时&#xff0c;方程可以不标…

【youcans 的 OpenCV 学习课】9. 频率域图像滤波(下)

专栏地址&#xff1a;『youcans 的图像处理学习课』 文章目录&#xff1a;『youcans 的图像处理学习课 - 总目录』 【youcans 的 OpenCV 学习课】9. 频率域图像滤波&#xff08;下&#xff09; 图像滤波是在尽可能保留图像细节特征的条件下对目标图像的噪声进行抑制&#xff0…

SQL语句中,创建标识列、默认值及各种约束的语法介绍

虽然创建表中字段的主外键、标识列、唯一约束、check约束等可以使用视图法创建&#xff0c;但最基本的还是应该会使用sql语句来创建这些吧&#xff0c;咱废话少说&#xff0c;直接上干货&#xff01;&#xff01;&#xff01; 标识列&#xff1a; 在创建表的字段时加上identity…

SpringBoot项目的 pom.xml第一行报错

当我们第一次创建SpringBoot项目的时候有时会发现SpringBoot项目里的pom.xml第一行报错。 对于这个报错问题&#xff0c;是由于jar包版本太高了。 错误显示 我们要修改jar包的版本 解决方案如下&#xff1a; 把 <version>2.2.1.RELEASE</version>修改为 <…

SPSS基础操作(二):用迭代法处理序列相关,并建立回归方程

1、【回归】—【线性】 2、添加自变量、因变量 3、选择【统计】&#xff0c;勾选【德滨沃森】&#xff0c;然后点继续、确定 4、得到德滨沃森的值&#xff0c;即DW0.771 5、【转换】—【计算变量】 6、添加目标变量、数字表达式&#xff0c;然后确定 注&#xff1a; 7、同样方…

【OpenCV 例程 300 篇】104. 运动模糊退化模型

专栏地址&#xff1a;『youcans 的 OpenCV 例程 300篇 - 总目录』 【第 7 章&#xff1a;图像复原与重建】 104. 运动模糊退化模型 105. 湍流模糊退化模型 【youcans 的 OpenCV 例程 300 篇】104. 运动模糊退化模型 5.3 模型法估计退化函数 估计图像复原中所用的退化函数&…

我的第一个SpringBoot项目

创建我的第一个SpringBoot项目。 打开Eclipse右击选择new >> project 进入之后找到SpringBoot点击打开找到Spring Starter Project 修改SpringBoot的项目名称即name之后的内容 找到Web选择SpringWeb 项目就 创建好了如图所示 找到src/main/java点开再找到com.exampl…

SPSS基础操作(三):用一阶差分法处理数据,并建立回归方程

1、【回归】—【线性】 2、添加自变量、因变量 3、选择【统计】&#xff0c;勾选【德滨沃森】&#xff0c;然后点继续、确定 4、得到德滨沃森的值&#xff0c;即DW0.771 5、【转换】—【计算变量】 6、添加目标变量、数字表达式&#xff0c;然后确定 注&#xff1a; 7、同样方…

【OpenCV 例程 300 篇】105. 湍流模糊退化模型

专栏地址&#xff1a;『youcans 的 OpenCV 例程 300篇 - 总目录』 【第 7 章&#xff1a;图像复原与重建】 104. 运动模糊退化模型 105. 湍流模糊退化模型 【youcans 的 OpenCV 例程300 篇】105. 湍流模糊退化模型 5.3 模型法估计退化函数 估计图像复原中所用的退化函数&#…

SQL Server经典查询语句练习题及答案

注意&#xff1a;在插入数据的时候&#xff0c;需要将zahowei改成中文&#xff0c;原数据是中文的&#xff0c;因为最近这个词不能过审&#xff0c;只能用拼音代替了&#xff0c;可能是那个人出了啥事吧&#xff0c;审核不通过就挺莫名其妙的 现在有一教学管理系统&#xff0…

如何创建SpringBoot项目

对于刚刚接触SpringBoot框架的人来说一切都是未知的探索&#xff0c;我们应该如何创建一个SpringBoot项目呢&#xff1f;&#xff1f;&#xff1f; 我们可以使用Eclipse来创建我们的SpringBoot项目&#xff0c;下面就给大家讲一下创建的方法。 1.打开我们的Eclipse软件&#…

【OpenCV 例程 300 篇】106. 退化图像的逆滤波

专栏地址&#xff1a;『youcans 的 OpenCV 例程 300篇 - 总目录』 【第 7 章&#xff1a;图像复原与重建】 106. 退化图像的逆滤波 107. 退化图像的维纳滤波 108. 约束最小二乘方滤波 109. 几何均值滤波 【youcans 的 OpenCV 例程 300 篇】106. 退化图像的逆滤波 6. 退化图像复…

MySql数据类型介绍

对于刚开始学习MySql数据库的小伙伴们来说&#xff0c;MySql数据库有那些数据类型呢&#xff0c;在此我给大家总结介绍一下MySql数据库数据类型。 MySql数据类型 数据类型一共有五大类分别是&#xff1a; 整数类型&#xff1a;BIT、BOOL、TINY INT、SMALL INT、MEDIUM INT、…

【OpenCV 例程 300 篇】107. 退化图像的维纳滤波

专栏地址&#xff1a;『youcans 的 OpenCV 例程 300篇 - 总目录』 【第 7 章&#xff1a;图像复原与重建】 106. 退化图像的逆滤波 107. 退化图像的维纳滤波 108. 约束最小二乘方滤波 109. 几何均值滤波 【youcans 的 OpenCV 例程 300 篇】107. 退化图像的维纳滤波&#xff08;…

阶段项目:学生信息管理系统数据库设计

目录问题描述&#xff1a;一、后台数据库的设计1&#xff09;设计数据库2&#xff09;插入数据3&#xff09;查询数据4&#xff09;修改数据5&#xff09;管理数据1.导出数据到各种异构数据源、导出脚本2.附加和分离数据库二、前端界面的开发&#xff08;后期我们可以用dNet开发…

【OpenCV 例程 300 篇】108. 约束最小二乘方滤波

专栏地址&#xff1a;『youcans 的 OpenCV 例程 300篇 - 总目录』 【第 7 章&#xff1a;图像复原与重建】 106. 退化图像的逆滤波 107. 退化图像的维纳滤波 108. 约束最小二乘方滤波 109. 几何均值滤波 【youcans 的 OpenCV 例程 300 篇】108. 约束最小二乘方滤波 6. 退化图像…

分析设计网上书店数据库,并画E-R图

分析并设计网上书店数据库&#xff0c;绘制E-R图&#xff0c;网上书店具有如下功能&#xff1a; 1、会员的注册、登录 2、网上预订图书 3、图书信息浏览 训练技能点&#xff1a; 1、会将E-R图转换为表 2、理解数据规范化 4、将分析在SQL Server数据库中实现具体的表 Sql serv…