简易 javascript 日历

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. <style>
  7. body, ul, li {
  8. margin: 0;
  9. padding: 0;
  10. box-sizing: border-box;
  11. }
  12. .calendar {
  13. margin: 10px auto;
  14. border: 1px solid;
  15. width: 21rem;
  16. }
  17. .calendar > .header {
  18. display: flex;
  19. justify-content: space-between;
  20. align-items: center;
  21. margin: .5rem;
  22. }
  23. .calendar > .header > .middle {
  24. text-align: center;
  25. }
  26. .calendar > ul {
  27. list-style: none;
  28. display: flex;
  29. margin-bottom: .5rem;
  30. }
  31. .calendar > ul > li {
  32. flex-basis: 3rem;
  33. padding: .5rem;
  34. text-align: center;
  35. }
  36. .calendar > ul.week {
  37. background-color: darkgray;
  38. }
  39. .calendar > ul.date {
  40. flex-wrap: wrap;
  41. }
  42. .calendar > ul.date > li.active {
  43. color: red;
  44. }
  45. </style>
  46. </head>
  47. <body>
  48. <div class="calendar">
  49. <div class="header">
  50. <a class="prev" href="javascript:" title="上一月">上一月</a>
  51. <div class="middle">
  52. <div class="year"></div>
  53. <div class="month"></div>
  54. </div>
  55. <a class="next" href="javascript:" title="下一月">下一月</a>
  56. </div>
  57. <ul class="week">
  58. <li></li>
  59. <li></li>
  60. <li></li>
  61. <li></li>
  62. <li></li>
  63. <li></li>
  64. <li></li>
  65. </ul>
  66. <ul class="date"></ul>
  67. </div>
  68. <script>
  69. var date = new Date();
  70. function calendar() {
  71. var year = date.getFullYear(),
  72. month = date.getMonth(),
  73. week = date.getDay(),
  74. day = date.getDate(),
  75. monthStr = ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'][month],
  76. weekDays = new Date(year, month, 1).getDay(),
  77. days = new Date(year, month + 1, 0).getDate();
  78. // 插入年
  79. document.getElementsByClassName('year')[0].innerHTML = year;
  80. // 插入月
  81. document.getElementsByClassName('month')[0].innerHTML = monthStr;
  82. // 插入日
  83. var dateStr = '', style;
  84. for (var i = 0; i < weekDays; i++) dateStr += `<li></li>`;
  85. for (var i = 1; i <= days; i++) {
  86. style = '';
  87. if (i === new Date().getDate() && year === new Date().getFullYear() && month === new Date().getMonth()) {
  88. style = ' class="active"';
  89. }
  90. dateStr += `<li${style}>${i}</li>`;
  91. }
  92. document.getElementsByClassName('date')[0].innerHTML = dateStr;
  93. }
  94. window.onload = calendar;
  95. document.getElementsByClassName('prev')[0].onclick = function () {
  96. date.setMonth(date.getMonth() - 1);
  97. calendar();
  98. }
  99. document.getElementsByClassName('next')[0].onclick = function () {
  100. date.setMonth(date.getMonth() + 1);
  101. calendar();
  102. }
  103. </script>
  104. </body>
  105. </html>

javascript日历

更多相关文章

  1. Android自定义实现日历控件
  2. Element Plus组件-按钮、图标、ColorPicker 颜色选择器、日历、R
  3. 你向 MySQL 数据库插入 100w 条数据用了多久?
  4. PHP中的国际化日历类
  5. 机械硬盘提示:请将磁盘插入驱动器怎么办?
  6. 07-15作业:简单的相册管理器
  7. 表单,框架,选择器,css的三种插入样式(内联,外部样式,元素中)
  8. mysql插入数字变成2147483647的解决方法
  9. PHP:【ThinkPHP】=> 通用后台管理,用户名,头像,判断是否为空

随机推荐

  1. C#中关于Timer定时器重入问题的解决方法
  2. ASP.NET如何实现进度条效果的实例讲解
  3. MongoDB在.Net中的使用方法详解
  4. 对MVC进行数据验证详解
  5. C#中关于foreach遍历使用的深入理解
  6. 完美解决SqlDataReader指定转换无效
  7. C#连接FTP时路径出现问题的解决方法
  8. Asp.Net--详解Core的安装和介绍
  9. 有关.Net MVC长轮询的实现方法
  10. C#如何利用FileSystemWatcher控件实现的