第一版,待重新调整。
效果图:
代码:
css: workAttendance.css
header{
font-size: 2rem;
color:white;
background-color: #4873C1;
height: 5rem;
}
.top{
text-align: center;
}
.cancel{
float:left;
margin-top: 1.5rem;
margin-left: 1rem;
font-size: 2rem;
}
.title{
font-size: 3rem;
}
main{
width:100%;
height:10rem;
}
.dateTable td{
width: 3rem;
height: 3rem;
}
html: workAttendance.html
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="workAttendance.css">
<script src="jquery-3.6.0/jquery-3.6.0.min.js"></script>
<script src="AmazeUI-2.7.2/assets/js/amazeui.min.js"></script>
</head>
<body>
<header>
</header>
<main>
<div>
<div class="selectDate" style="display: none;">
<select style="width: 10rem;height:3rem;font-size:2rem;" id="ayear">
</select><b style="height:3rem;font-size:2rem;">年</b>
<select style="width: 10rem;height:3rem;font-size:2rem;" id="bmonth">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
</select><b style="height:3rem;font-size:2rem;">月</b>
</div>
<div id="date" style="background-color:#4873C1;font-size: 2.5rem;margin: 0;padding: 0;color: white;"></div>
<table id="dateTable"
style="height:60rem;width:100%;text-align: center;background-color: #4873C1;color: white;font-size:2rem;border-spacing:3rem;">
</table>
</div>
</main>
<script type="text/javascript">
var userData;
var clickDayId;
$(document).ready(function () {
var date = new Date;
var ayear = document.getElementById("ayear");
for (var i = 2200; i > 1970; i--) {
ayear.add(new Option(i, i));
}
$("#ayear").val(date.getFullYear());
$("#bmonth").val(date.getMonth() + 1)
var dateSelect = document.getElementById("date");
dateSelect.innerText = date.getFullYear() + "年" + (date.getMonth() + 1) + "月";
selectDate();
})
function timehtml(yeargoal, monthgoal) {
//月末
var time = new Date(yeargoal, monthgoal, 0);
//获得这个月由多少天
var date = time.getDate();
var time2 = new Date(yeargoal, monthgoal - 1, 1);
//获得这个月的一号是星期几
var day = time2.getDay();
//月
var mon = time.getMonth() + 1;
//年
var year = time.getFullYear();
//行标签头
var hangT = "<tr style=''>";
//空的td块
var lieK = "<td style=''></td>";
var timestr = hangT;
//日历表头
timestr = timestr + "<td style='width:12%;'>" + "日" + "</td>";
timestr = timestr + "<td style='width:12%;'>" + "一" + "</td>";
timestr = timestr + "<td style='width:12%;'>" + "二" + "</td>";
timestr = timestr + "<td style='width:12%;'>" + "三" + "</td>";
timestr = timestr + "<td style='width:12%;'>" + "四" + "</td>";
timestr = timestr + "<td style='width:12%;'>" + "五" + "</td>";
timestr = timestr + "<td style='width:12%;'>" + "六" + "</td>";
timestr = timestr + "</tr><tr style='heigth:3rem;'>";
for (var i = 0; i < day; i++) {
timestr = timestr + lieK;
}
var dayNum = 0;
for (var j = 1; j <= date; j++) {
timestr = timestr + "<td style='background-color: #4873C1;color:white;border-radius:50%;' id='" + year + mon + j + "' onclick='dateClick(" + year + "," + mon + "," + j + ")'>" + j + "</td>";
if (day == 6) {
dayNum++;
timestr = timestr + "</tr>";
day = -1;
}
day++;
}
if (day > 0) {
for (var i = day; i <= 6; i++) {
timestr = timestr + lieK;
}
dayNum++;
}
timestr = timestr + "</tr>";
if (dayNum < 6) {
timestr = timestr + "<tr style='heigth:3rem;visibility: hidden'><td style=''>1</td></tr>";
}
return timestr;
}
function dateClick(year, mon, j) {
if (j != '') {
//把上一个样式删除
if (clickDayId != null && clickDayId != '') {
var dayEle = document.getElementById(clickDayId);
if (dayEle) {
dayEle.style.color = 'white';
dayEle.style.backgroundColor = '#4873C1';
}
}
clickDayId = year + "" + mon + "" + j;
//修改样式
var dayEle = document.getElementById(clickDayId);
if (dayEle) {
dayEle.style.color = 'blue';
dayEle.style.backgroundColor = 'white';
}
}
}
function selectDate() {
var yeargoal = document.getElementById("ayear").value;
var monthgoal = document.getElementById("bmonth").value;
var str = timehtml(yeargoal, monthgoal);
var dateSelect = document.getElementById("date");
dateSelect.innerText = yeargoal + "年" + monthgoal + "月";
$("table").html(str);
}
$("#ayear").change(function () {
if ($("#bmonth").val() != "") {
selectDate();
}
})
$("#bmonth").change(function () {
if ($("#ayear").val() != "") {
selectDate();
}
})
// 左右滑动日历
var startX = 0, startY = 0, touchD;
function touchStart(evt) {
try {
var touch = evt.touches[0], //获取第一个触点
x = Number(touch.pageX), //页面触点X坐标
y = Number(touch.pageY); //页面触点Y坐标
//记录触点初始位置
startX = x;
startY = y;
} catch (e) {
}
}
function touchMove(evt) {
try {
var touch = evt.touches[0], //获取第一个触点
x = Number(touch.pageX), //页面触点X坐标
y = Number(touch.pageY); //页面触点Y坐标
//判断滑动方向
if (x - startX > 0) {
touchD = -1;
}
if (x - startX < 0) {
touchD = 1;
}
} catch (e) {
}
}
function touchEnd(evt) {
if (touchD && touchD != "") {
try {
var yeargoal = document.getElementById("ayear").value;
var monthgoal = document.getElementById("bmonth").value;
var mon = parseInt(monthgoal) + parseInt(touchD);
var year = yeargoal;
if (mon > 12) {
year = parseInt(yeargoal) + parseInt(1);
mon = 1;
}
if (mon < 1) {
year = parseInt(yeargoal) - parseInt(1);
mon = 12;
}
$("#ayear").val(year);
$("#bmonth").val(mon);
selectDate();
touchD = "";
} catch (e) {
}
}
}
//绑定事件
function bindEvent() {
document.addEventListener('touchstart', touchStart, false);
document.addEventListener('touchmove', touchMove, false);
document.addEventListener('touchend', touchEnd, false);
}
bindEvent();
</script>
</body>
</html>
AmazeUI:JS 插件 | Amaze UI