- 浏览: 16500 次
- 性别:
- 来自: 杭州
文章分类
最新评论
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<link rel="stylesheet" rev="stylesheet" href="../css/member.css" type="text/css" />
<style type="text/css">
*{margin:0;padding:0;font-size:12px;}
#div1{margin:20px;display:none;}
#div2{margin:20px;position:absolute; top:320px;}
#nowTime{width:285px;float:left;}
#nextTime{width:285px;float:left;margin:0 0 0 10px;}
.mytitle{width:100%;height:30px;background:#17a4eb;color:#FFFFFF;position:relative;}
.mytitle .c{text-align:center;line-height:30px;}
.mytitle .l{position:absolute;top:6px;left:5px;}
.mytitle .r{position:absolute;top:6px;right:5px;}
table.tcss{width:100%; background:#dee3e9;color:#9ea7ac;}
table.tcss tr{background:#f9fafc;}
table.tcss th{width:46px;padding:5px; font-size:11px;}
table.tcss td{padding:5px;text-align:center;}
.red{color:#ff0000;}
.myblue{color:#0000ff;
background-color:#39F;
}
.green{
background-color:#6F0;
}
table .tcss td p{color:#FF0000;}
input{margin:20px;}
a{TEXT-DECORATION:none}
</style>
<script type="text/javascript" src="<%=basePath %>script/jquery-1.7.1.min.js"></script>
<script type="text/javascript" src="<%=basePath %>script/jquery.corner.js"></script>
<script type="text/javascript">
$(function(){
var aInput = document.getElementsByTagName('input');
var oDiv = document.getElementById('div1');
var oNowTime = document.getElementById('nowTime');
var oNextTime = document.getElementById('nextTime');
var aTd = document.getElementsByTagName('td');
// alert(oTd.length);
var aNowSpan = oNowTime.getElementsByTagName('span');
var aNextSpan = oNextTime.getElementsByTagName('span');
// var bBtn = true;
// aInput[2].onclick=function(){
var oDate = new Date();
// if(bBtn){
oDiv.style.display='block';
if(oDate.getMonth()+1==12){
showDate(oNowTime,oDate.getFullYear(),oDate.getMonth()+1,true);
showDate(oNextTime,oDate.getFullYear()+1,1);
}else{
showDate(oNowTime,oDate.getFullYear(),oDate.getMonth()+1,true);
showDate(oNextTime,oDate.getFullYear(),oDate.getMonth()+2);
}
// alert(oDate.getDate());
showColor(oDate.getDate());
showBtn();
hideLastTr();
getJson('nowTime');
getJson('nextTime');
/* }else{
oDiv.style.display='none';
}
*/
// bBtn = !bBtn;
// };
function showDate(obj,year,month,bBtn){
var oDate = new Date();
var dayNum = 0;
//没有Date则创建
if(!obj.bBtn){
obj.oTitle = document.createElement('div');
obj.oTitle.className='mytitle';
obj.appendChild(obj.oTitle);
var oTable = document.createElement('table');
$(oTable).addClass('tcss');
var oThead = document.createElement('thead');
var oTr = document.createElement('tr');
var arr =['周一','周二','周三','周四','周五','周六','周日'];
for(var i =0;i<7;i++){
var oTh = document.createElement('th');
oTh.innerHTML = arr[i];
if(i==5 || i==6){
oTh.className='red';
}
oTr.appendChild(oTh);
}
oThead.appendChild(oTr);
oTable.appendChild(oThead);
var oTbody = document.createElement('tBody');
for(var i = 0;i<6;i++){
var oTr = document.createElement('tr');
for(var j =0;j<7;j++){
var oTd = document.createElement('td');
oTr.appendChild(oTd);
}
oTbody.appendChild(oTr);
}
oTable.appendChild(oTbody);
obj.appendChild(oTable);
obj.bBtn = true;
}
obj.oTitle.innerHTML=(bBtn ? '<div class="l"><a href="javascript:void(0)"><<<span>'+(month-1)+'</span>月</a></div>'
:'<div class="r"><a href="javascript:void(0)"><span>'+(month+1)+'</span>月>></a></div>')
+'<div class="c"><span>'+year+'</span>年<span>'+month+'</span>月 </div>';
var aTd = obj.getElementsByTagName('td');
//每次刷新先清空
for(var i = 0;i<aTd.length;i++){
aTd[i].innerHTML='';
}
//清楚所有样式
/*
for(var k =0;k<$('#nowTime td').size();k++){
var bool = $('#nowTime td:eq('+k+')').hasClass('blue');
if(bool){
$('#nowTime td:eq('+k+')').uncorner();
}
}
for(var k =0;k<$('#nextTime td').size();k++){
var bool = $('#nextTime td:eq('+k+')').hasClass('blue');
if(bool){
$('#nextTime td:eq('+k+')').uncorner();
}
}
*/
for(var k = 0;k<$('td').size();k++){
$('td:eq('+k+')').uncorner();
$('td:eq('+k+')').removeAttr('class');
}
if(month==1 || month==3 || month==5 || month==7 || month==8
|| month == 10 || month==12){
dayNum = 31;
}
else if(month==4 || month==6 || month==9 || month==11){
dayNum=30;
}else if(month==2 && isLeapYear(year)){
dayNum = 29;
}else{
dayNum = 28;
}
oDate.setFullYear(year);
oDate.setMonth(month-1);
oDate.setDate(1);
switch(oDate.getDay()){
case 0:
for(var i =0;i<dayNum;i++){
aTd[i+6].innerHTML = i+1;
}
break;
case 1:
for(var i =0;i<dayNum;i++){
aTd[i+1].innerHTML = i+1;
}
break;
case 2:
for(var i =0;i<dayNum;i++){
aTd[i+2].innerHTML = i+1;
}
break;
case 3:
for(var i =0;i<dayNum;i++){
aTd[i+3].innerHTML = i+1;
}
break;
case 4:
for(var i =0;i<dayNum;i++){
aTd[i+4].innerHTML = i+1;
}
break;
case 5:
for(var i =0;i<dayNum;i++){
aTd[i+5].innerHTML = i+1;
}
break;
case 6:
for(var i =0;i<dayNum;i++){
aTd[i+6].innerHTML = i+1;
}
break;
}
/*
ajax('data.js?'+(+new Date),function(str){
var j = eval('('+str+')');
var now= 0;
for(var i = 0;i<aTd.length;i++){
if(aTd[i].innerHTML ==1){
now = i;
}
}
if(j.code){
for(var i =0;i<j.list.length;i++){
if(j.list[i]){
var oP = document.createElement('p');
oP.innerHTML = j.list[i];
aTd[i+now].appendChild(oP);
}
}
}
});
*/
if(month==1 && bBtn ){
obj.oTitle.getElementsByTagName('span')[0].innerHTML = 12;
}else if(month==12 && !bBtn){
obj.oTitle.getElementsByTagName('span')[0].innerHTML = 1;
}
}
function isLeapYear(year){
if(year%4==0 && year%100!=0){
return true;
}else{
if(year %400==0){
return true;
}else{
return false;
}
}
}
function showColor(date){
var result=[];
var oDate = new Date();
// var re = new RegExp("'+date+'(<p>)*");
var bBtn = true;
var index = 0;
// alert(oTd.length);
for(var i = 0;i<aTd.length;i++){
if(aTd[i].innerHTML !='')
{
result.push(aTd[i]);
}
}
if(aNowSpan[1].innerHTML==oDate.getFullYear() &&
aNowSpan[2].innerHTML==oDate.getMonth()+1){
for(var i = 0;i<result.length;i++){
// if(re.test(result[i].innerHTML)){
if(date==result[i].innerHTML && bBtn == true){
// alert(result[i].innerHTML);
// 区别于其它签到日期,当前签到日期设置为green
result[i].className ='green';
// $(result[i]).corner();
index = i;
bBtn = false;
}
}
//设置当前日期后10位蓝色字体显示
/*
for(len = index+10;index<len;index++){
result[index+1].className='blue';
}
*/
}
if(aNextSpan[1].innerHTML==oDate.getFullYear() &&
aNextSpan[2].innerHTML==oDate.getMonth()+1){
// for(var i = 0;i<result.length;i++){
for(var i = result.length-1;i>=0;i--){
// if(re.test(result[i].innerHTML)){
if(date==result[i].innerHTML && bBtn == true){
// alert(result[i].innerHTML);
result[i].className ='green';
index = i;
//只显示一次
bBtn = false;
}
}
//设置当前日期后10位蓝色字体显示
/*
for(len = index+10;index<len;index++){
result[index+1].className='blue';
}
*/
}
}
function showBtn(){
var leftMonth = parseInt(aNowSpan[0].innerHTML);
var leftYear = parseInt(aNowSpan[1].innerHTML);
var rightMonth = parseInt(aNextSpan[0].innerHTML);
var rightYear = parseInt(aNextSpan[1].innerHTML);
aNowSpan[0].parentNode.onclick = function(){
if(leftMonth == 12){
showDate(oNowTime,leftYear-1,leftMonth,true);
showDate(oNextTime,leftYear,1);
}else{
showDate(oNowTime,leftYear,leftMonth,true);
showDate(oNextTime,leftYear,leftMonth+1);
}
// 设置按钮事件
showBtn();
showColor(new Date().getDate());
hideLastTr();
getJson('nowTime');
getJson('nextTime');
};
aNextSpan[0].parentNode.onclick = function(){
if(rightMonth == 1 ){
showDate(oNowTime,rightYear,12,true);
showDate(oNextTime,rightYear+1,rightMonth);
}else{
showDate(oNowTime,rightYear,rightMonth-1,true);
showDate(oNextTime,rightYear,rightMonth);
}
showBtn();
showColor(new Date().getDate());
hideLastTr();
getJson('nowTime');
getJson('nextTime');
};
}
function hideLastTr(){
var bBtn = true;
var bBtn2 = true;
for(var i = 35;i<42;i++){
if( $('#div1 td:eq('+i+')').html() != ''){
bBtn = false;
}
}
if(bBtn){
for(var i = 35;i<42;i++){
$('#div1 td:eq('+i+')').hide();
}
}
else{
for(var i = 35;i<42;i++){
$('#div1 td:eq('+i+')').show();
}
}
for(var i = 77;i<84;i++){
if($('#div1 td:eq('+i+')').html() != ''){
bBtn2 = false;
}
}
if(bBtn2){
for(var i = 77;i<84;i++){
$('#div1 td:eq('+i+')').hide();
}
}
else{
for(var i = 77;i<84;i++){
$('#div1 td:eq('+i+')').show() ;
}
}
}
function setDigital( num, n){
var str = '' + num;
while(str.length<n){
str='0'+str;
}
return str;
}
function getJson(position){
$.getJSON("<%=basePath%>member/listMemberAttendance.htm",function(result){
var records = result;
for(var i=0;i<records.length;i++){
// alert(records[i]);
var date = records[i];
var yue = $('#'+position+' .c span:eq(1)').html();
var month = setDigital(yue,2);
var arr = date.split("-");
var monthArr = arr[1];
var dayArr = arr[2];
if(month==monthArr){
var $td = $('#'+position+' td');
for(var k = 0;k<$td.size();k++){
var str = $td[k].innerHTML;
if(str==dayArr){
// var $before = $('<a href="#">');
// var $after = $('</a>');
$('#'+position+' td:eq('+k+')').addClass('myblue');
$('#'+position+' td:eq('+k+')').corner();
}
}
}
}
});
}
});
</script>
</head>
<body >
<!-- <input type="text"/><input type="text"/><input type="button" value="确定"/>-->
<table width="100%" height="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="center" valign="middle">
<div class="content">
<div class="welcome">尊敬的${member.name }先生,下午好,欢迎来到XXX!<a class="blue" href="<%=basePath%>logOut.htm"><b>注销</b></a>
<a class="blue" href="<%=basePath%>member/saveMemberAttendance.htm"><b>我要签到</b></a>
<a class="blue" href="<%=basePath%>index.htm"><b>返回首页</b></a> </div>
<div class="main">
<%@include file="left.jsp" %>
<div class="right">
<div id="div1">
<div id = "nowTime"></div>
<div id = "nextTime"></div>
</div>
<div id="div2">
<p class="red">说明:<img src="/images/member/blueq.jpg" width="5%" height="5%"></img>已签到
<img src="/images/member/greenq.jpg" width="5%" height="5%"></img>当日签到
<img src="/images/member/greennq.jpg" width="5%" height="5%"></img>当前日期
</p>
</div>
</div>
</div>
</div>
</td>
</tr>
</table>
</body>
</html>
相关推荐
总结来说,创建一个JS日历控件并支持选择多个日期,需要对JavaScript的DOM操作、事件处理、日期对象有深入的理解,以及一定的前端设计和用户体验知识。实践中,我们可以结合现有的库和框架来简化开发流程,提高效率...
在实现JavaScript日历时,我们通常会利用JavaScript的Date对象来处理日期相关操作。例如,获取当前日期、切换月份、计算星期等。同时,通过监听用户的点击事件,我们可以实现日历的交互功能。比如,当用户点击某个...
本文将深入探讨一个专注于一周日期显示的JavaScript插件——weeklyCalendar。这款插件以其简洁的设计和丰富的功能,成为那些只需要关注一周时间范围的项目的理想选择。 1. **每周视图** weeklyCalendar的核心特性...
Js双日历控件,在一个网页上同时显示两个日期选择器,写成了封装类,方便使用者调用。同时美化的相当不错。 包括了以下函数: 1、2012——2020年节假日信息(包括节假日前1~3天/后1~3天) 2、格式化数字,...
在这个场景中,"js日历控件日期多选Kalendajs" 提供了一种功能强大的解决方案,允许用户在日历上选择多个日期,甚至可以跨越多个月份。 Kalendajs是一款专门设计的日历插件,它具有日期多选功能,可以极大地提升...
详细请参考驴妈妈 酒店和门票的价格日历。 index.html 入口文件 data.php 包含一个价格日历生成类和 一些实例 product.php ajax产品的json格式 style 样式和js文件 说明: 此程序中js是驴妈妈上的,我做了些修改,...
总结来说,这个免费下载的资源提供了四年间的周日历数据,以JSON格式存储,包含了周次、开始日期和结束日期。对于开发者和数据分析师而言,它可以用于创建可视化报告、进行时间序列分析、优化业务决策,从而提升...
高质量的JavaScript日历组件通常提供API,允许开发者自定义样式、行为和功能,比如添加特定的日期标记、禁用某些日期、调整日历的显示样式等。 9. **性能优化** 考虑到性能,一个好的js日历组件应避免不必要的DOM...
Kalendae.js是一款高效、灵活的JavaScript库,专为网页应用设计,用于创建交互式、可自定义的日历组件。它支持多种功能,如单选、多选日期以及时间选择,适用于各种场景,如事件预定、计划管理等。在网页开发中,...
总结来说,这个“实用可拖动的日历js+css代码”是一个结合了JavaScript动态功能和CSS美化效果的日期选择工具,它提升了用户在网页上的日期操作体验,同时也展示了前端开发中JavaScript和CSS的巧妙运用。如果你正在...
本篇文章将详细讲解如何利用JavaScript实现一个简单的日历选择器,并涉及日期和时间处理的基本概念。 首先,让我们理解JavaScript中的日期对象(Date)。JavaScript内置的Date对象用于处理日期和时间,它可以用来...
JavaScript日历组件是Web开发中常见的一种交互元素,主要用于用户在网页上进行日期选择操作。在前端开发领域,尤其在构建交互式用户界面时,一个功能强大的日历组件显得尤为重要。"My97DatePicker"是一个知名的...
"Js日历控件传递url参数"这个主题聚焦于如何将用户在日历控件中选择的日期作为URL参数传递到下一个页面,如博客日志列表或新闻列表页面,以便根据选定日期筛选内容。这里我们将深入探讨JavaScript(Js)与ASP技术...
在这个"JS日历控件"中,可能利用了事件监听(如click事件)来触发日历的显示和隐藏。 其次,对于多日期选择功能,控件可能采用了数组来存储用户选择的日期。用户每次选择一个日期,该日期就会被添加到数组中,同时...
创建日历控件首先需要在HTML中添加一个触发显示日历的按钮或者输入框,然后用JavaScript动态生成日历的HTML结构并插入到页面中。 2. **事件处理**:在JavaScript中,我们可以监听用户的点击、鼠标移动等事件,并...
4. 数据处理:服务器响应后,解析返回的数据,通常是JSON格式,然后更新对应日期单元格的日程条数显示。 5. 显示日程详情:在mouseout事件中,可以清除或隐藏日程详情,保持日历的整洁。 6. 动画效果:为了提高...
"js带节假日日历控件"就是一种利用JavaScript实现的,包含节假日信息的日历组件。 创建这样的日历控件首先需要了解JavaScript的基本语法,包括变量声明、数据类型、条件语句、循环结构、函数等。同时,由于我们需要...
JavaScript(简称JS)日历插件是一种常用的前端交互组件,用于在网页上提供直观的日期选择功能。在网页设计和开发中,日期选择器通常用于处理与日期相关的表单输入,如预订系统、事件安排或者在线调查等。下面将详细...
js日历排期,异步数据请求,js日期排期,日历排期。