一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

node.js|vue.js|jquery|angularjs|React|json|js教程|

服務(wù)器之家 - 編程語言 - JavaScript - jquery - 基于jquery實現(xiàn)日歷效果

基于jquery實現(xiàn)日歷效果

2022-02-17 19:28清靜清源 jquery

這篇文章主要為大家詳細介紹了基于jquery實現(xiàn)日歷效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了jquery實現(xiàn)日歷效果的具體代碼,供大家參考,具體內(nèi)容如下

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
/**
 * 2021/3/6
 * Calendar
 */
 
/* get y Year m Month before days
 */
function getBDays( y, m ) {
 return (new Date(y, m, 1).getDay());
}
 
/* get y Year m Month total days
 */
function getTDays( y, m ) {
 return (new Date(y, m + 1, -1).getDate() + 1);
}
 
/* get y Year m Month last days
 */
function getBMDays( y, m ) {
 return (new Date(y, m, -1).getDate() + 1);
}
 
function Calendar( nowDate ) {
 // year, month, day
 this.year = nowDate.getFullYear();
 this.month = nowDate.getMonth();
 this.day = nowDate.getDate();
 
 // before days
 this.beforeDays = getBDays(this.year, this.month);
 // current month days
 this.totalDays = getTDays(this.year, this.month);
 // last month days
 this.lastDays = getBMDays(this.year, this.month);
 
 // save now date
 this.nowY = nowDate.getFullYear();
 this.nowM = nowDate.getMonth();
}
 
Calendar.prototype.initCalendar = function() {
 // get calendar id
 let calDiv = $("#Calendar").append("<table></table>");
 
 // get calendar table
 let calTable = $("#Calendar > table");
 
 // add calendar table tr
 for ( let n = 0; n < 8; n++ ) {
 calTable.append('<tr></tr>');
 }
 
 // get calendar table tr : header
 let calHeadTr = $("#Calendar > table > tr:first");
 
 // add calendar table tr th
 for ( let n = 0; n < 3; n++ ) {
 calHeadTr.append('<th></th>');
 }
 
 // select index > 0 tr
 let calBodyTr = $("#Calendar > table > tr:gt(0)");
 
 // add calendar table tr td
 for ( let n = 0; n < 7; n++ ) {
 calBodyTr.append('<td></td>');
 }
}
 
Calendar.prototype.insertDate = function( calName ) {
 // get calendar table tr td : header
 let calHeadTh = $("#Calendar > table > tr:first > th");
 
 // modify header content
 $(calHeadTh[0]).html("<a><</a>");
 $(calHeadTh[1]).html(`<a>${this.year} 年 ${this.month + 1} 月</a>`);
 $(calHeadTh[2]).html("<a>></a>");
 
 // add style to header
 $(calHeadTh[1]).attr({
 "colspan" : 5,
 "title" : calName
 });
 
 // weekday arrays
 const calWeekArr = ['日', '一', '二', '三', '四', '五', '六'];
 
 // get calendar table tr td : weekdays
 let calWeekTd = $("#Calendar > table > tr:eq(1) > td");
 for ( let n = 0; n < 7; n++ ) {
 $(calWeekTd[n]).html(`<a>${calWeekArr[n]}</a>`);
 }
 
 // get calendar table tr td : body
 let calBodyTd = $("#Calendar > table > tr:gt(1) > td");
 
 // insert before days
 for (let n = this.beforeDays - 1, lastDays = this.lastDays;
 n >= 0;
 n--, lastDays--) {
 $(calBodyTd[n]).html(`<a>${lastDays}</a>`);
 $(calBodyTd[n]).attr("class", "other-day");
 }
 // insert current days
 for (let n = this.beforeDays, i = 1;
  i <= this.totalDays;
  i++, n++) {
 $(calBodyTd[n]).html(`<a>${i}</a>`);
 
 if (i == this.day &&
  (new Date(this.year, this.month, 1).getMonth() == this.nowM) &&
  (new Date(this.year, this.month, 1).getFullYear() == this.nowY)) {
 $(calBodyTd[n]).attr("class", "now-day");
 }
 else {
 $(calBodyTd[n]).removeAttr("class", "now-day");
 }
 }
 
 // insert after days
 for (let n = this.beforeDays + this.totalDays, i = 1;
 n < calBodyTd.length;
 n++, i++) {
 $(calBodyTd[n]).html(`<a>${i}</a>`);
 $(calBodyTd[n]).attr("class", "other-day");
 }
}
 
Calendar.prototype.update = function( newDate ) {
 // year, month, day
 this.year = newDate.getFullYear();
 this.month = newDate.getMonth();
 this.day = newDate.getDate();
 
 // before days
 this.beforeDays = getBDays(this.year, this.month);
 // current month days
 this.totalDays = getTDays(this.year, this.month);
 // last month days
 this.lastDays = getBMDays(this.year, this.month);
}
 
function initDate() {
 // create Date object
 let now = new Date();
 let cal = new Calendar( now );
 
 // init and insert
 cal.initCalendar();
 cal.insertDate( 'MyDate' );
 
 // add click event to th:first
 $("#Calendar > table > tr:first > th:first").click(function(){
 now.setMonth( now.getMonth() - 1 );
 cal.update( now );
 cal.insertDate( 'MyDate' );
 });                        
 
 // add click event to th:last
 $("#Calendar > table > tr:first > th:last").click(function(){
 now.setMonth( now.getMonth() + 1 );
 cal.update( now );
 cal.insertDate( 'MyDate' );
 });
}
 
initDate();

html

?
1
2
3
4
5
6
7
8
9
10
11
12
13
<!DOCTYPE html>
<html>
 <head>
 <meta charset="utf-8" />
 <title>Document</title>
 <link href="css/dateCal.css" rel="stylesheet" media="screen">
 </head>
 <body>
 <div id="Calendar"></div>
 <script src="js/jquery.js"></script>
 <script src="js/dateCal.js"></script>
 </body>
</html>

CSS:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#Calendar {
 width: 200px;
 padding-bottom: 5px;
 box-shadow: 0 1px 3px #ccc;
 border: 1px solid #EDEDED;
}
 
#Calendar table {
 width: inherit;
 text-align: center;
 user-select: none;
 font-family: "Comic Sans MS";
 border-collapse: collapse;
 border-spacing: 0px;
}
 
#Calendar table tr th {
 background: #f8f8f8;
 font-size: 12px;
}
 
#Calendar table tr:nth-child(2) {
 background: #f8f8f8;
}
 
#Calendar table tr td {
 font-size: 10px;
}
 
#Calendar table tr td.now-day {
 color: red;
}
 
#Calendar table tr td.other-day {
 color: lightgray;
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。

原文鏈接:https://blog.csdn.net/qq_35068659/article/details/114459393

延伸 · 閱讀

精彩推薦
  • jqueryjQuery是用來干什么的 jquery其實就是一個js框架

    jQuery是用來干什么的 jquery其實就是一個js框架

    jQuery是一bai個簡潔而快速的JavaScript庫,可用于du簡化zhi事件處理,HTML文檔遍歷,Ajax交互和dao動畫,以更快速開發(fā)網(wǎng)站...

    jQuery教程網(wǎng)8842022-01-17
  • jqueryjQuery使用hide()、toggle()函數(shù)實現(xiàn)相機品牌展示隱藏功能

    jQuery使用hide()、toggle()函數(shù)實現(xiàn)相機品牌展示隱藏功能

    這篇文章主要介紹了jQuery使用hide()、toggle()函數(shù)實現(xiàn)相機品牌展示隱藏功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考...

    Schieber11822022-01-11
  • jqueryjquery插件實現(xiàn)搜索歷史

    jquery插件實現(xiàn)搜索歷史

    這篇文章主要為大家詳細介紹了jquery插件實現(xiàn)搜索歷史,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    阿飛超努力8462022-03-09
  • jqueryjQuery實現(xiàn)本地存儲

    jQuery實現(xiàn)本地存儲

    這篇文章主要為大家詳細介紹了jQuery實現(xiàn)本地存儲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    李大璟10682021-12-16
  • jqueryjquery實現(xiàn)穿梭框功能

    jquery實現(xiàn)穿梭框功能

    這篇文章主要為大家詳細介紹了jquery實現(xiàn)穿梭框功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    陳濤輝8412022-01-04
  • jqueryjquery插件實現(xiàn)圖片懸浮

    jquery插件實現(xiàn)圖片懸浮

    這篇文章主要為大家詳細介紹了jquery插件實現(xiàn)圖片懸浮,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    阿飛超努力5802022-03-03
  • jqueryjQuery實現(xiàn)鼠標拖動圖片功能

    jQuery實現(xiàn)鼠標拖動圖片功能

    這篇文章主要介紹了jQuery實現(xiàn)鼠標拖動圖片功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以...

    lucascube5812022-02-10
  • jqueryjQuery treeview樹形結(jié)構(gòu)應(yīng)用

    jQuery treeview樹形結(jié)構(gòu)應(yīng)用

    這篇文章主要為大家詳細介紹了jQuery treeview樹形結(jié)構(gòu)應(yīng)用,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    Lqq77s9342022-02-20
主站蜘蛛池模板: 动漫美女隐私尿口图片 | 色戒西瓜| 久久WWW免费人成一看片 | 欧美人曾交 | 免费观看国产精品 | 91久久青青草原线免费 | 久久精品99国产精品日本 | 精品久久久久久影院免费 | 亚洲香蕉网久久综合影院3p | 岛国免费大片 | ak福利午夜在线观看 | 日本视频二区 | 国产午夜成人无码免费看 | 国内精品久久久久久中文字幕 | 亚洲www美色 | 成人综合婷婷国产精品久久免费 | 热99re久久精品国产 | 国产麻豆精品视频 | 日本高清有码视频 | 亚洲狠狠综合久久 | 国产自拍专区 | 欧美在线视频7777kkkk | 精品国产人妻国语 | 免费网站看v片在线成人国产系列 | 久久99热狠狠色AV蜜臀 | 亚洲精品中文 | 97影院伦理 | sao虎在线精品永久 s0e一923春菜花在线播放 | 亚洲精品成人456在线播放 | 久久伊人中文字幕有码 | 久久婷婷五月综合色丁香花 | 大学第一次基本都没了 | 人妖巨茎video | 精品夜夜澡人妻无码AV蜜桃 | 亚洲国产精品福利片在线观看 | 国内精品99| 天堂色| 无码精品AV久久久奶水 | 色综合视频一区二区观看 | ange venus与黑人| 欧美精品一线二线大片 |