JS简单实现移动端日历功能示例


Posted in Javascript onDecember 28, 2016

本文实例讲述了JS简单实现移动端日历功能。分享给大家供大家参考,具体如下:

只是一个初步的简单的日历,有是否显示上月和下月部分的选项

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
  <meta name="apple-mobile-web-app-capable" content="yes">
  <meta name="apple-mobile-web-app-status-bar-style" content="black">
  <meta name = "format-detection" content = "telephone=no">
  <title>移动端日历</title>
  <style type="text/css">
    table{
      width: 100%;
      border-collapse: collapse;
    }
    td {
      padding: 0;
      margin: 0;
      vertical-align: middle;
      text-align: center;
      font-size: .7rem;
      height: 1.5rem;
    }
    .none{
      display: none;
    }
  </style>
</head>
<body>
  <div class="calendar">
    <table class="calendar_day">
      <tr>
        <td>星期日</td>
        <td>星期一</td>
        <td>星期二</td>
        <td>星期三</td>
        <td>星期四</td>
        <td>星期五</td>
        <td>星期六</td>
      </tr>
    </table>
    <table class="calendar_date">
      <tr>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
      </tr>
      <tr>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
      </tr>
      <tr>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
      </tr>
      <tr>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
      </tr>
      <tr>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
      </tr>
      <tr>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
      </tr>
    </table>
  </div>
  <script type="text/javascript">
  var date = new Date();
  calendar(date,{lastandnext:true})
  function calendar (setDate,options){
    if (!options) {
      options = {};
    }
    options.lastandnext = options.lastandnext || false;
    // 星期几部分
    var calendar_days = document.getElementsByClassName('calendar_day')[0];
    var days = calendar_days.getElementsByTagName('td');
    var date = new Date(setDate);
    var y = date.getFullYear();
    var m = date.getMonth();
    var d = date.getDate();
    // 本月
    // 该月的第一天是星期几
    var firstDay = new Date(y,m,1).getDay();
    // console.log(firstDay);
    // 该月一共多少天
    var lastData = new Date(y,m+1,0).getDate();
    // console.log(lastData)
    // 该月的最后一天是星期几
    var lastDay = new Date(y,m+1,0).getDay();
    // console.log(firstDay)
    var calendar_date = document.getElementsByClassName('calendar_date')[0];
    var tds = calendar_date.getElementsByTagName('td');
    // console.log(tds)
    var ed = firstDay;
    for (var i = firstDay; i < lastData+firstDay; i++) {
      // console.log(i-firstDay+1)
      tds[i].innerHTML= i-(firstDay)+1;
    }
    if(options.lastandnext){
      // // 上月
      var lastMonthData = new Date(y,m,0).getDate();
      for(var i = firstDay-1; i >= 0; i--){
        tds[i].innerHTML= lastMonthData-(firstDay-i-1);
      }
      // 下月
      var k = 0;
      for(var i = lastData+firstDay; i < tds.length; i++){
        k++;
        tds[i].innerHTML= k;
      }
    }
  }
  </script>
  <!-- 适配 -->
  <script type="text/javascript">
    ;(function(win, doc){
      function change(){
        doc.documentElement.style.fontSize=20*doc.documentElement.clientWidth/360+'px';
      }
      change();
      win.addEventListener('resize', change, false);
    })(window, document);
  </script>
</body>
</html>

PS:这里再为大家分享几款本站的在线日期工具供大家参考:

在线万年历日历:
http://tools.3water.com/bianmin/wannianli

网页万年历日历:
http://tools.3water.com/bianmin/webwannianli

在线万年历黄历flash版:
http://tools.3water.com/bianmin/flashwnl

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
JQuery 操作Javascript对象和数组的工具函数小结
Jan 22 Javascript
javascript获取鼠标点击元素对象(示例代码)
Dec 20 Javascript
浮动的div自适应居中显示的js代码
Dec 23 Javascript
node.js中使用socket.io的方法
Dec 15 Javascript
JavaScript中的类与实例实现方法
Jan 23 Javascript
jQuery中toggle()函数的使用实例
Apr 17 Javascript
JavaScript获取数组最小值和最大值的方法
Jun 09 Javascript
jQuery自定义图片缩放拖拽插件imageQ实现方法(附demo源码下载)
May 27 Javascript
D3.js实现折线图的方法详解
Sep 21 Javascript
解决vue同一slot在组件中渲染多次的问题
Sep 06 Javascript
JQuery获取可视区尺寸和文档尺寸及制作悬浮菜单示例
May 14 jQuery
茶余饭后聊聊Vue3.0响应式数据那些事儿
Oct 30 Javascript
如何学JavaScript?前辈的经验之谈
Dec 28 #Javascript
js+div+css下拉导航菜单完整代码分享
Dec 28 #Javascript
javascript实现简单的ajax封装示例
Dec 28 #Javascript
前端面试知识点锦集(JavaScript篇)
Dec 28 #Javascript
一句jQuery代码实现返回顶部效果(简单实用)
Dec 28 #Javascript
Web前端框架bootstrap实战【第一次接触使用】
Dec 28 #Javascript
hovertree插件实现二级树形菜单(简单实用)
Dec 28 #Javascript
You might like
php多功能图片处理类分享(php图片缩放类)
2014/03/14 PHP
thinkphp循环结构用法实例
2014/11/24 PHP
THINKPHP内容分页代码分享
2015/01/14 PHP
在Nginx上部署ThinkPHP项目教程
2015/02/02 PHP
php基本函数汇总
2015/07/09 PHP
laravel 框架结合关联查询 when()用法分析
2019/11/22 PHP
获取Javscript执行函数名称的方法
2006/12/22 Javascript
ie和firefox中img对象区别的困惑
2006/12/27 Javascript
javascript引导程序
2008/10/26 Javascript
javascript 短路法代码精简
2009/08/20 Javascript
解析Jquery的LigerUI如何实现文件上传
2013/07/09 Javascript
javascript修改IMG标签的src问题
2014/03/28 Javascript
React Native实现进度条弹框的示例代码
2017/07/17 Javascript
Angular.js中window.onload(),$(document).ready()的写法浅析
2017/09/28 Javascript
node使用mysql获取数据库数据中文乱码问题的解决
2019/12/02 Javascript
[02:05]2014DOTA2西雅图邀请赛 专访啸天mik夫妻档
2014/07/08 DOTA
python之import机制详解
2014/07/03 Python
Python爬虫实现(伪)球迷速成
2018/06/10 Python
浅谈django三种缓存模式的使用及注意点
2018/09/30 Python
Python Series从0开始索引的方法
2018/11/06 Python
解决python打不开文件(文件不存在)的问题
2019/02/18 Python
python高斯分布概率密度函数的使用详解
2019/07/10 Python
python文件读写代码实例
2019/10/21 Python
全球地下的服装和态度:Slam Jam
2018/02/04 全球购物
C和C++经典笔试题附答案解析
2014/08/18 面试题
Linux操作面试题
2015/02/11 面试题
Python里面如何拷贝一个对象
2014/02/17 面试题
给客户的道歉信
2014/01/13 职场文书
小学教研工作制度
2014/01/15 职场文书
企业后勤岗位职责
2014/02/28 职场文书
商场租赁意向书
2014/07/30 职场文书
迟到检讨书2000字(精选篇)
2014/10/07 职场文书
幼儿园教师教育随笔
2015/08/14 职场文书
意外事故赔偿协议书
2016/03/22 职场文书
python字符串的多行输出的实例详解
2021/06/08 Python
java设计模式--原型模式详解
2021/07/21 Java/Android