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 相关文章推荐
Web版彷 Visual Studio 2003 颜色选择器
Jan 09 Javascript
JavaScript 对象、函数和继承
Jul 07 Javascript
IE 下的只读 innerHTML
Aug 21 Javascript
关于jquery性能最佳实践的讨论,与求教
Mar 30 Javascript
js实现div的切换特效上一个下一个
Feb 11 Javascript
微信公众号 摇一摇周边功能开发
Dec 08 Javascript
Angular2学习教程之ng中变更检测问题详解
May 28 Javascript
详解Vue Elememt-UI构建管理后台
Feb 27 Javascript
json对象及数组键值的深度大小写转换问题详解
Mar 30 Javascript
小程序识别身份证,银行卡,营业执照,驾照的实现
Nov 05 Javascript
antd table按表格里的日期去排序操作
Nov 17 Javascript
vue实现可以快进后退的跑马灯组件
Apr 08 Vue.js
如何学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
CodeIgniter图像处理类的深入解析
2013/06/17 PHP
php向js函数传参的几种方法
2014/08/10 PHP
PHP5.3新特性小结
2016/02/14 PHP
yii2局部关闭(开启)csrf的验证的实例代码
2017/07/10 PHP
用JAVASCRIPT如何给&amp;lt;textarea&amp;gt;&amp;lt;/textarea&amp;gt;赋值
2007/04/20 Javascript
JavaScript操作XML实例代码(获取新闻标题并分页,并分页)
2010/05/25 Javascript
jquery事件的ready()方法使用详解
2015/11/11 Javascript
理解javascript中try...catch...finally
2015/12/25 Javascript
jQuery xml字符串的解析、读取及查找方法
2016/03/01 Javascript
js实现可控制左右方向的无缝滚动效果
2016/05/29 Javascript
JavaScript实现的可变动态数字键盘控件方式实例代码
2017/07/15 Javascript
基于canvas粒子系统的构建详解
2017/08/31 Javascript
浅谈Node.js爬虫之网页请求模块
2018/01/11 Javascript
vue 刷新之后 嵌套路由不变 重新渲染页面的方法
2018/09/13 Javascript
GOJS+VUE实现流程图效果
2018/12/01 Javascript
详解js中let与var声明变量的区别
2020/04/05 Javascript
ES6中let、const的区别及变量的解构赋值操作方法实例分析
2019/10/15 Javascript
如何基于filter实现网站整体变灰功能
2020/04/17 Javascript
基于脚手架创建Vue项目实现步骤详解
2020/08/03 Javascript
python访问系统环境变量的方法
2015/04/29 Python
Python爬虫实例_城市公交网络站点数据的爬取方法
2018/01/10 Python
使用TensorFlow搭建一个全连接神经网络教程
2020/02/06 Python
Jupyter Notebook远程登录及密码设置操作
2020/04/10 Python
CSS3绘制不规则图形的一些方法示例
2015/11/07 HTML / CSS
HTML5中drawImage用法分析
2014/12/01 HTML / CSS
劳动之星获奖感言
2014/02/01 职场文书
运动会稿件50字
2014/02/17 职场文书
交通事故赔偿协议书
2014/04/15 职场文书
我爱我家教学反思
2014/05/01 职场文书
工作散漫检讨书
2014/09/16 职场文书
简易离婚协议书范本
2014/10/24 职场文书
2014年体育部工作总结
2014/11/13 职场文书
客户付款通知书
2015/04/23 职场文书
2015年节能减排工作总结
2015/05/14 职场文书
教师学期述职自我鉴定
2019/08/16 职场文书
遇事可以测出您的见识与格局
2019/09/16 职场文书