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实现仿微软首页感应鼠标变化滑动窗口效果
Oct 08 Javascript
jQuery Validate初步体验(二)
Dec 12 Javascript
js与jQuery实现checkbox复选框全选/全不选的方法
Jan 05 Javascript
jQuery循环遍历子节点并获取值的方法
Apr 14 Javascript
javascript比较语义化版本号的实现代码
Sep 09 Javascript
详解用webpack2搭建angular2的项目
Jun 22 Javascript
Bootstrap弹出框(Popover)被挤压的问题小结
Jul 11 Javascript
javascript 跨域问题以及解决办法
Jul 17 Javascript
AngularJS $http post 传递参数数据的方法
Oct 09 Javascript
详解js静态检查工具eslint配置文件
Nov 23 Javascript
JS正则表达式常见函数与用法小结
Apr 13 Javascript
原生JavaScript实现五子棋游戏
Nov 09 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
在字符串中把网址改成超级链接
2006/10/09 PHP
php zip文件解压类代码
2009/12/02 PHP
PHP使用PHPMailer发送邮件的简单使用方法
2013/11/12 PHP
ThinkPHP提示错误Fatal error: Allowed memory size的解决方法
2015/02/12 PHP
php验证身份证号码正确性的函数
2016/07/20 PHP
php使用PDO事务配合表格读取大量数据插入操作实现方法
2017/02/16 PHP
php下载远程大文件(获取远程文件大小)的实例
2017/06/17 PHP
Laravel 5.5 的自定义验证对象/类示例代码详解
2017/08/29 PHP
PHP 使用二进制保存用户状态的实例
2018/01/29 PHP
thinkPHP框架整合tcpdf插件操作示例
2018/08/07 PHP
PHP实现的服务器一致性hash分布算法示例
2018/08/09 PHP
多个$(document).ready()的执行顺序实例分析
2014/07/26 Javascript
js操作css属性实现div层展开关闭效果的方法
2015/05/11 Javascript
json传值以及ajax接收详解
2016/05/24 Javascript
BootStrap智能表单实战系列(四)表单布局介绍
2016/06/13 Javascript
js将字符串中的每一个单词的首字母变为大写其余均为小写
2017/01/05 Javascript
ES6学习笔记之正则表达式和字符串正则方法分析
2017/04/25 Javascript
WebSocket的简单介绍及应用
2019/05/23 Javascript
微信小程序—setTimeOut定时器的问题及解决
2019/07/26 Javascript
解决vue elementUI中table里数字、字母、中文混合排序问题
2020/01/07 Javascript
JS面向对象编程基础篇(二) 封装操作实例详解
2020/03/03 Javascript
Vue实现腾讯云点播视频上传功能的实现代码
2020/08/17 Javascript
Python创建文件和追加文件内容实例
2014/10/21 Python
浅谈python对象数据的读写权限
2016/09/12 Python
python3的输入方式及多组输入方法
2018/10/17 Python
Python定时任务随机时间执行的实现方法
2019/08/14 Python
Python如何在单元测试中给对象打补丁
2020/08/03 Python
Python面向对象实现方法总结
2020/08/12 Python
微信html5页面调用第三方位置导航的示例
2018/03/14 HTML / CSS
解决HTML5中的audio在手机端和微信端的不能自动播放问题
2019/11/04 HTML / CSS
大韩航空官方网站:Korean Air
2017/10/25 全球购物
学校经典推荐信
2013/10/30 职场文书
2016大学军训通讯稿
2015/11/25 职场文书
go语言中http超时引发的事故解决
2021/06/02 Golang
SQL基础查询和LINQ集成化查询
2022/01/18 MySQL
Java线程的6种状态与生命周期
2022/05/11 Java/Android