用JavaScript怎样写签到日历,代码是什么
Admin 2022-09-01 群英技术资讯 708 次浏览
今天这篇给大家分享的知识是“用JavaScript怎样写签到日历,代码是什么”,小编觉得挺不错的,对大家学习或是工作可能会有所帮助,对此分享发大家做个参考,希望这篇“用JavaScript怎样写签到日历,代码是什么”文章能帮助大家解决问题。本文实例为大家分享了js实现签到日历的具体代码,供大家参考,具体内容如下

wxml代码
<view class="boxMain" style="height:{{dateList.length>35?'805rpx':'730rpx'}}">
<view class="calendarHeader">
<view>本月已签到<text>{{recordList.length}}</text>天</view>
</view>
<view class="calendarChange">
<view class="calendarChangeLeftRight" catchtap="initDateList" data-month="{{chooseMonth-1}}">
<image mode="widthFix" src="{{static}}left_arrow.png"></image>
</view>
<text>{{chooseYear}}年{{chooseMonth+1}}月</text>
<view class="calendarChangeLeftRight" catchtap="initDateList" data-month="{{chooseMonth+1}}">
<image mode="widthFix" src="{{static}}right_arrow.png"></image>
</view>
</view>
<view class="calendarContent">
<view class="calendarWeek">
<text>日</text>
<text>一</text>
<text>二</text>
<text>三</text>
<text>四</text>
<text>五</text>
<text>六</text>
</view>
<view class="calendarDays">
<view wx:for="{{dateList}}" wx:key="index" wx:for-item="dateItem">
<view style="color:{{dateItem.type=='current'?'#ffffff':(dateItem.type=='before'?'#979797':(dateItem.type=='selected'?'#FE7458':''))}};background-color:{{ dateItem.type=='current'?'#FE7458':(dateItem.type=='before'?'#F8F8FA':(dateItem.type=='selected'?'#ffdcd5':'')) }}">
{{dateItem.day}}
</view>
</view>
</view>
</view>
</view>
js代码:
const app = getApp()
const http = require('../../config/api.js');
Page({
data: {
static: app.data.static,
recordList: [],
totalReward: {},
dateList: [],
chooseYear: new Date().getFullYear(),
chooseMonth: new Date().getMonth(),
currentDay: new Date().getDate(),
dayNumsByMonth: null
},
onLoad() {
this.initDateList(); //初始化日历
},
initDateList: function (e) {
let that = this;
let chooseMonth = that.data.chooseMonth;
let chooseYear = that.data.chooseYear;
let currentDate = new Date();
let currentYear = currentDate.getFullYear();
let currentMonth = currentDate.getMonth();
if (e) {
chooseMonth = e.currentTarget.dataset.month;
if (chooseMonth >= 12) {
chooseMonth = chooseMonth - 12;
chooseYear = chooseYear + 1;
} else if (chooseMonth < 0) {
chooseMonth = chooseMonth + 12;
chooseYear = chooseYear - 1;
} else {
chooseMonth = chooseMonth;
}
let monthCount = (currentYear - chooseYear) * 12 + currentMonth - chooseMonth;
if (monthCount > 0 && Math.abs(monthCount) > 6) {
wx.showToast({
title: '往前最多查看六个月',
icon: 'none',
duration: 1500
})
return
} else if (monthCount < 0 && Math.abs(monthCount) > 1) {
wx.showToast({
title: '往后最多查看一个月',
icon: 'none',
duration: 1500
})
return
}
}
that.setData({
chooseMonth: chooseMonth,
chooseYear: chooseYear
})
var dateList = [];
let firstDayWeek = new Date(that.data.chooseYear, that.data.chooseMonth, 1).getDay();
let dayNumsByMonth = new Date(that.data.chooseYear, that.data.chooseMonth + 1, 0).getDate();
that.setData({
dayNumsByMonth: dayNumsByMonth
})
for (let i = 0; i < 43; i++) {
let day = i - firstDayWeek + 1;
if (day > dayNumsByMonth && (i == 35 || i == 42)) {
that.setData({
dateList: dateList
});
return
}
dateList.push({
'year': '',
'month': '',
'day': '',
'type': '',
})
if (day > 0 && day <= dayNumsByMonth) {
dateList[i].year = that.data.chooseYear;
dateList[i].month = that.isTen(that.data.chooseMonth + 1);
dateList[i].day = that.isTen(day);
if (that.data.chooseYear == currentYear && that.data.chooseMonth == currentMonth) {
if (day < that.data.currentDay) {
dateList[i].type = 'before';
} else if (day > that.data.currentDay) {
dateList[i].type = 'after';
} else {
dateList[i].type = 'current'
}
} else if (that.data.chooseYear < currentYear || (that.data.chooseYear == currentYear && that.data.chooseMonth < currentMonth)) {
dateList[i].type = 'before';
} else {
dateList[i].type = 'after';
}
}
}
},
isTen: function (v) {
return v >= 10 ? v : `0${v}`
}
});
wxss代码
.boxMain {
background-color: #fff;
margin: 36rpx 30rpx 22rpx 30rpx;
border-radius: 10rpx;
padding: 0 20rpx;
display: flex;
flex-direction: column;
}
.boxMain .calendarHeader {
display: flex;
justify-content: space-between;
color: #333333;
font-size: 28rpx;
margin-top: 40rpx;
padding: 0 4rpx;
}
.boxMain .calendarHeader view text {
color: #FE7458;
padding: 0 6rpx;
}
.boxMain .calendarHeader view:last-child {
font-size: 24rpx;
}
.boxMain .calendarChange {
display: flex;
padding: 0 50rpx;
align-items: center;
justify-content: space-between;
background-color: #F8F8FA;
border-radius: 25rpx;
height: 50rpx;
line-height: 50rpx;
font-size: 24rpx;
text-align: center;
margin: 25rpx 0;
}
.boxMain .calendarChange .calendarChangeLeftRight{
width: 50rpx;
height: 50rpx;
display: flex;
flex-direction: column;
justify-content: center;
}
.boxMain .calendarChange image{
width: 12rpx;
margin: 0 auto;
}
.boxMain .calendarContent .calendarWeek{
font-size: 26rpx;
display: flex;
justify-content: space-between;
}
.boxMain .calendarContent .calendarWeek text{
width: 14%;
height: 40rpx;
text-align: center;
}
.boxMain .calendarContent .calendarDays{
font-size: 26rpx;
display: flex;
justify-content: space-between;
flex-wrap:wrap;
align-items: center;
margin-top: 47rpx;
}
.boxMain .calendarContent .calendarDays>view{
width: 14%;
text-align: center;
display: block;
margin-bottom: 32rpx;
height: 46rpx;
line-height: 46rpx;
}
.boxMain .calendarContent .calendarDays>view>view{
width: 46rpx;
height: 46rpx;
margin: 0 auto;
border-radius: 50%;
}
.boxMain .calendarContent .calendarDays .box{
margin-top: -10rpx;
}
.boxMain .calendarContent .calendarDays .box image{
width: 42rpx;
}
.boxMain .calendarContent .calendarDays .box text{
float: left;
margin-top: -20rpx;
padding-left: 4rpx;
color: #FE7458;
}
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
jQuery中的$符号表示什么?日常中我们看到$符号是表示美元的符号,但是在jQuery中$符号是代表获取的意思,是一个回传函数。这篇我们就来了解看看$符号怎么样使用。
javascript将字符串转换为8进制的方法:1、使用parseInt()函数将字符串转为十进制数,语法“parseInt(字符串)”;2、使用toString()函数将十进制数转为8进制数,语法“十进制数.toString(8)”。
这篇文章主要介绍了Vue项目打包部署到apache服务器,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
nodejs新建空目录用fs模块的mkdir()方法,该方法会以异步的方式创建文件目录,如果目录已存在,将抛出异常;语法“fs.mkdir(path, [mode], [callback(err)])”。
排他思想的算法就是排除掉其他的,本文主要介绍了JavaScript 排他思想的实现,以及介绍了两个示例,感兴趣的可以了解一下
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008