.net篇(1)--js写日历
【1】html页面定义日历div
<div id="calendar" style="width: 100%;"></div>
【2】
$("#calendar").html();
分两种情况:
全年日历或选择某一个月份单独显示
if (month_select == "0") {
showCalendar0(year, items, ResultList, FalseArr, TrueArr, NoArr);
}
else if (month_select != "0") {
showCalendar1(year, month_select, items, ResultList, FalseArr, TrueArr, NoArr);
}
【3】全年日历
showCalendar0(year, items, ResultList, FalseArr, TrueArr, NoArr);
function showCalendar0(select_year, items, ResultList, FalseArr, TrueArr, NoArr) {
var content = "";
for (var i = 0; i < 12; i++) {
content += "<div style='float:left;width:25%;border-right:1px solid #dadada' > <div class='c_header'><h1></h1><ol><li>日</li><li>一</li><li>二</li><li>三</li><li>四</li><li>五</li><li>六</li></ol></div><ul class='c_body' id='ul" + i + "'>";
for (var j = 0; j < 42; j++) {
content += "<li></li>";
}
content += "</ul></div>";
}
debugger;
$("#calendar").html(content);
var oCal = document.getElementById("calendar");//id='calendar'的对象
var oTitle = oCal.getElementsByTagName("h1");//得到h1标签元素
var oUl = oCal.getElementsByTagName("ul");//得到ul标签元素
var addIDArray = new Array();//17
addIDArray.length = 0;//17
//根据传入的年份重新算时间
var oDate = new Date();//当前时间的日期对象
oDate.setYear(select_year);//setYear()用于设置年份
var iYear = oDate.getFullYear();
//得到年
var bLeap = false;//是否是闰年
if (iYear % 4 == 0 && iYear % 100 !== 0 || iYear % 400 == 0) bLeap = true;
var addIDArray = new Array();
for (var m = 0; m < 12; m++) {
oDate.setMonth(m);//设置月份(0-11,12个月)
oDate.setDate(1);//设置一个月的某一天(1-31)
var iMonth = oDate.getMonth();
//得到月
var iDay = oDate.getDay();
//得到星期几
var iSum = 0; //存本月天数
oTitle[m].innerHTML = iYear + "年" + (iMonth + 1) + "月"; //第一个h1标签元素(*年*月)
switch (iMonth + 1) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
iSum = 31;
break;
case 4:
case 6:
case 9:
case 11:
iSum = 30;
break;
case 2:
if (bLeap) iSum = 29;
else iSum = 28;
break;
}
var aLi = oUl[m].getElementsByTagName("li"); //得到第(m+1)个所有li标签元素
//初始化一下
for (var i = 0; i < aLi.length; i++) {//
aLi[i].innerHTML = "";//清除内容
aLi[i].style.height = "40px";
aLi[i].className = "";
}
var month = m < 9 ? "-0" + (m + 1) : "-" + (m + 1);
for (var i = 1; i <= iSum; i++) {
var day = i < 10 ? "-0" + i : "-" + i;
var addID = iYear + month + day;
addIDArray.push(addID);//17
aLi[iDay].setAttribute("id", "a" + addID);
$("#a" + addID).html(i);
for (var f in FalseArr) {
if (addID == FalseArr[f]) {
//['#90ED7D', '#FFBC75', '#999EFF'],
$("#a" + addID).css("backgroundColor", "#FFBC75");
}
}
for (var t in TrueArr) {
if (addID == TrueArr[t]) {
$("#a" + addID).css("backgroundColor", "#90ED7D");
}
}
for (var n in NoArr) {
if (addID == NoArr[n]) {
$("#a" + addID).css("backgroundColor", "#999EFF");
}
}
//17
for (var r in ResultList) {
if (addID == ResultList[r]["MonitorTime"]) {
var strdiv;
var strdiv = ""
strdiv += "<div class='tip' id='tip" + addID + "'>" + addID + "<br/>";
if (items == "AQI") {
strdiv += "预测:" + ResultList[r]["fAQI"] + ";实测:" + ResultList[r]["dAQI"];
}
if (items == "AirLevel") {
strdiv += "预测:" + ResultList[r]["fLevel"] + ";实测:" + ResultList[r]["dLevel"];
}
strdiv += "</div>";
$("#a" + addID).append(strdiv);
}
}//17
//showdata(addID);
iDay++;//得到这天是周几,依次往后加
}
for (var i = 0; i < addIDArray.length; i++) {
var liID = "#a" + addIDArray[i];
var divID = "#tip" + addIDArray[i];
$(liID).mouseover(function (e) {
var aid = $(e.target)[0].id;
var tipid = $("#" + aid + " div")[0].id;
$("#" + tipid).show();
//$(divID).css("display", "block");
});
$(liID).mouseout(function (e) {
var aid = $(e.target)[0].id;
var tipid = $("#" + aid + " div")[0].id;
$("#" + tipid).hide();
//$(divID).css("display", "none");
});
}
}
//把没字的格子折叠起来
for (var i = 0; i < aLi.length; i++) {
if (aLi[i].innerHTML == "") {
aLi[i].style.height = "0px";
}
}
}
【4】某一个月份日历
//单个月份日历
function showCalendar1(select_year, month, items, ResultList, FalseArr, TrueArr, NoArr) {
var content = "";
if (month == "0") {
for (var i = 0; i < 12; i++) {
content += "<div style='float:left;width:25%;border-right:1px solid #dadada' > <div class='c_header'><h1></h1><ol><li>日</li><li>一</li><li>二</li><li>三</li><li>四</li><li>五</li><li>六</li></ol></div><ul class='c_body' id='ul" + i + "'>";
for (var j = 0; j < 42; j++) {
content += "<li></li>";
}
content += "</ul></div>";
}
}
else if (month != "0") {
content += "<div style='float:left;width:100%;border-right:1px solid #dadada' > <div class='c_header'><h1></h1><ol><li>日</li><li>一</li><li>二</li><li>三</li><li>四</li><li>五</li><li>六</li></ol></div><ul class='c_body' id='ul" + month + "'>";
for (var j = 0; j < 42; j++) {
content += "<li></li>";
}
content += "</ul></div>";
}
debugger;
$("#calendar").html(content);
var oCal = document.getElementById("calendar");//id='calendar'的对象
var oTitle = oCal.getElementsByTagName("h1");//得到h1标签元素
var oUl = oCal.getElementsByTagName("ul");//得到ul标签元素
var addIDArray = new Array();//17
addIDArray.length = 0;//17
//根据传入的年份重新算时间
var oDate = new Date();//当前时间的日期对象
oDate.setYear(select_year);//setYear()用于设置年份
var iYear = oDate.getFullYear();
//得到年
var bLeap = false;//是否是闰年
if (iYear % 4 == 0 && iYear % 100 !== 0 || iYear % 400 == 0) bLeap = true;
var addIDArray = new Array();
var Mbegin = 0;
var Mend = 12;
if (month != "0") {
Mbegin = month - 1;
Mend = month;
}
for (var m = Mbegin; m < Mend; m++) {
oDate.setMonth(m);//设置月份(0-11,12个月)
oDate.setDate(1);//设置一个月的某一天(1-31)
var iMonth = oDate.getMonth();
//得到月
var iDay = oDate.getDay();
//得到星期几
var iSum = 0; //存本月天数
if (month == "0")
{ oTitle[m].innerHTML = iYear + "年" + (iMonth + 1) + "月"; }//第一个h1标签元素(*年*月)
else if (month != "0")
{ oTitle[0].innerHTML = iYear + "年" + (iMonth + 1) + "月"; }
switch (iMonth + 1) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
iSum = 31;
break;
case 4:
case 6:
case 9:
case 11:
iSum = 30;
break;
case 2:
if (bLeap) iSum = 29;
else iSum = 28;
break;
}
if (month == "0")
{ var aLi = oUl[m].getElementsByTagName("li"); }//得到第(m+1)个所有li标签元素
else if (month != "0")
{ var aLi = oUl[0].getElementsByTagName("li"); }
//初始化一下
for (var i = 0; i < aLi.length; i++) {//
aLi[i].innerHTML = "";//清除内容
aLi[i].style.height = "40px";
aLi[i].className = "";
}
var month = m < 9 ? "-0" + (m + 1) : "-" + (m + 1);
for (var i = 1; i <= iSum; i++) {
var day = i < 10 ? "-0" + i : "-" + i;
var addID = iYear + month + day;
addIDArray.push(addID);//17
aLi[iDay].setAttribute("id", "a" + addID);
$("#a" + addID).html(i);
for (var f in FalseArr) {
//['#90ED7D', '#FFBC75', '#999EFF'],
if (addID == FalseArr[f]) {
$("#a" + addID).css("backgroundColor", "#FFBC75");
}
}
for (var t in TrueArr) {
if (addID == TrueArr[t]) {
$("#a" + addID).css("backgroundColor", "#90ED7D");
}
}
for (var n in NoArr) {
if (addID == NoArr[n]) {
$("#a" + addID).css("backgroundColor", "#999EFF");
}
}
//17
for (var r in ResultList) {
if (addID == ResultList[r]["MonitorTime"]) {
var strdiv;
var strdiv = ""
strdiv += "<div class='tip' id='tip" + addID + "'>" + addID + "<br/>";
if (items == "AQI") {
strdiv += "预测:" + ResultList[r]["fAQI"] + ";实测:" + ResultList[r]["dAQI"];
}
if (items == "AirLevel") {
strdiv += "预测:" + ResultList[r]["fLevel"] + ";实测:" + ResultList[r]["dLevel"];
}
strdiv += "</div>";
$("#a" + addID).append(strdiv);
}
}//17
//showdata(addID);
iDay++;//得到这天是周几,依次往后加
}
for (var i = 0; i < addIDArray.length; i++) {
var liID = "#a" + addIDArray[i];
var divID = "#tip" + addIDArray[i];
$(liID).mouseover(function (e) {
var aid = $(e.target)[0].id;
var tipid = $("#" + aid + " div")[0].id;
$("#" + tipid).show();
//$(divID).css("display", "block");
});
$(liID).mouseout(function (e) {
var aid = $(e.target)[0].id;
var tipid = $("#" + aid + " div")[0].id;
$("#" + tipid).hide();
//$(divID).css("display", "none");
});
}
}
//把没字的格子折叠起来
for (var i = 0; i < aLi.length; i++) {
if (aLi[i].innerHTML == "") {
aLi[i].style.height = "0px";
}
}
}
.net篇(1)--js写日历相关推荐
- Java写js的Ajax代码_用JS写的一个Ajax库(实例代码)
myajax是一个用js编写的一个跨浏览器的ajax库,支持get, post, jsonp请求,精巧,简单. 一.发送GET请求: myajax.get({ data: {}, //参数 url: ...
- vue+js纯手写日历(包含农历,节假日)
vue+js纯手写日历(包含农历,节假日) 使用的js 地址 dataChange.js 插件使用了elementui //完整代码 <template><div><di ...
- js ...运算符_「 giao-js 」用js写一个js解释器
前言 在这篇文章中,我们将通过 JS 构建我们自己的 JS 解释器,用 JS 写 JS,这听起来很奇怪,尽管如此,这样做我们将更熟悉 JS,也可以学习 JS 引擎是如何工作的! 什么是解释器 (Int ...
- 在网上看到和篇关于sql server 2005的性能优化篇,觉得写得很好。
在网上看到和篇关于sql server 2005的性能优化篇,觉得写得很好. SQL Server2005扩展函数已经不是一件什么新鲜的事了,但是我看网上的大部分都是说聚合函数,例子也比较浅,那么这里 ...
- js 取得input绑定的datalist中的值_原生JS写一个ToDo Demo
周六加班没什么事,于是乎...上班摸鱼,用原生JS写了一个ToDo Demo,废话少叙,直接看效果: 如图,实现了以下需求(以下的具体实现我会一一道来): 0.页面的基本布局: 1.rem布局.在不同 ...
- node js 写按键精灵_带有按键的Node.js Raw模式
node js 写按键精灵 I find the stuff that people are doing with Node.js incredibly interesting. You here ...
- js写css字体,js如何写出css动画 ?js写css动画的方法(代码)
本篇文章给大家带来的内容是关于js如何写出css动画 ?js写css动画的方法(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 使用setTimeout()或者setInter ...
- Python+selenium自动化-js处理日历控件(修改readonly属性)
前言 今天写自动化脚本的时候遇到一个需要更改日期的控件,不想费劲巴拉的去找日历的定位,但是又没办法直接输入我想输的日期时间,想了会儿之后决定用js解决日历控件 基本思路:先用js去掉readonly属 ...
- 用three.js写一个小场景
上次我们用three.js写了一个下雨的动画,主要是用粒子.这次是用three.js搭建了一个小场景. 项目地址依然是:https://github.com/alasolala/threejs-tut ...
最新文章
- 视频流中的DTS、PTS到底是什么
- BOOST_PREDEF_TESTED_AT宏相关的测试程序
- vb 读取mysql所有表名_vb怎么列举出一个mdb数据库里面所有表名?
- 将您的SQL Server工作负载迁移到PostgreSQL
- Least-Squares Fitting of Two 3-D Point Sets
- 关于部分手机无法搜索到5G wifi信号的解决方法
- Java发送邮箱验证码、session校验功能
- F8Net:只有8比特乘法的神经网络量化
- vwf活性_血管性血友病因子(VWF)应该针对血型设置参考范围吗?
- 学习笔记——共阳数码管的静态显示
- 计算机网络第三章数据链路层习题答案
- 与QQ群中一屌人的聊天记录,颇有感触,贴出来,大家共勉一下哦
- freebsd php 编译 mysql sql2005_[伊达原创]FreeBSD8.0源码编译安装MYSQL5 APACHE2.2 PHP5.3.2
- 网站关键词优化怎么做的(seo如何挖掘关键词)
- PHP - Laravel 视图模板(blade.php) 循环便利
- HTML+CSS+JS家乡主题网页设计 学生网页设计作品 dreamweaver作业静态HTML网页设计模板 旅游景点网页作业制作
- 微信小程序连接阿里云物联网平台——物联网远程控制开发1
- 关于VMware设置网络
- linux装入归档文件时,装入归档文件时发生了错误!!怎么解决?
- AtCoder Grand Contest 004 A - Divide a Cuboid 题解
热门文章
- zabbix php代码,Zabbix php分布式系统监视 v5.2.5
- Echarts实战案例代码(59):geomap实现飞线、散点、引导线以及重叠label的解决
- STM32学习记录——ST-LINK下载器
- for循环执行流程面试题(经典)
- $().click()和$().on(‘click‘,function(){})的区别
- 2021年中国能源消费结构、生产结构及世界能源发展趋势分析:消费结构进一步优化,低成本技术将是企业的核心竞争力[图]
- 北京大学前言交叉学科研究院大数据中心夏令营和信科夏令营心得
- 排查相机功耗问题时,影响静态亮屏功耗的几个因素
- C语言学习笔记知识点齐全——新手入门必看【建议收藏】
- iOS,在应用之间共享文档