Angularjs 手写日历的实现代码(不用插件)


Posted in Javascript onOctober 18, 2017

本文介绍了Angularjs 手写日历的实现代码(不用插件),分享给大家,具体如下:

效果:

Angularjs 手写日历的实现代码(不用插件)

Html:

<div class="plan_content_box" data-ng-init="showTime()">
    <div class="field" style="width: 100%;">
     <span class="field_label" style="width: 100%;text-align: center;">
      <select id="time_year" ng-change="change_year(select_year)" ng-model="select_year" ng-options="x.id as x.value for x in all_year">
       <!--<option value="1900">1900</option>-->
      </select> 年
      <select id="time_month" ng-change="change_month(select_month)" ng-model="select_month" ng-options="x.id as x.value for x in all_month">
 
      </select> 月 {{active_day}} 日
     </span>
    </div>
    
    <table class="table table-bordered hover_td" style="border: none;">
     <tr id="float_td">
      <td>星期日</td>
      <td>星期一</td>
      <td>星期二</td>
      <td>星期三</td>
      <td>星期四</td>
      <td>星期五</td>
      <td>星期六</td>
      <td ng-repeat="day in days track by $index" ng-click="change_day(day)"
        ng-class="{true:'active',false:''}[day==active_day]" ng-model="day">{{day}}</td>
     </tr>
    </table>
   </div>

js:

//  创建日历
  
  $scope.all_year = [];
  
  $scope.all_month = [];
  $scope.showTime = function() {
   //在select中填入年份
   for(var year = 2016; year < 2050; year++) {
    var obj_1 = {'value': year, 'id': year}
    $scope.all_year.push(obj_1);
   }
   
   //在select中填入月份
   for(var month = 1; month < 13; month++) {
    var obj_2 = {'value': month, 'id': month}
    $scope.all_month.push(obj_2);
   }
   console.log($scope.all_year)
   //初始化显示 当前年和月
   $scope.show_now()
   
   
  }
  //当select的选中的option发送变化的触发的事件
  $scope.change_year = function(data) {
   $scope.showDays(data, $scope.select_month)
  }
  $scope.change_month = function(data) {
   $scope.showDays($scope.select_year, data)
   
  }

  //返回指定的月份的天数 月份1-12
  $scope.calDays = function (year, month) {
   return new Date(year, month, 0).getDate();
  }

  $scope.days = [];
  //展示指定的年和月的所有日期
  $scope.showDays = function(year, month) {
   $scope.days = [];
   
   //得到表示指定年和月的1日的那个时间对象
   var date = new Date(year, month - 1, 1);
   
   
   //1.先添加响应的空白的li:这个月1号是星期几,就添加几个空白的li
   var dayOfWeek = date.getDay(); //得到1日是星期几
   for(var i = 0; i < dayOfWeek; i++) {
    $scope.days.push("");
   }
   
   
   //计算一个月有多少天
   var daysOfMonth = $scope.calDays(year, month);
   //2. 从1号开始添加li
   for(var i = 1; i <= daysOfMonth; i++) {
    $scope.days.push(i)
   }
  }
  
  $scope.active_day = ''
  $scope.select_year = ''
  $scope.select_month = ''
  //初始化显示 当前年和月
  $scope.show_now = function() {
   var now = new Date();
//   $("#time_year").val(now.getFullYear());
//   $("#time_month").val(now.getMonth() + 1); 
   $scope.active_day = now.getDate();
   $scope.select_year = now.getFullYear();
   $scope.select_month = now.getMonth() + 1;
   $scope.showDays($scope.select_year, $scope.select_month)
  }
  
  
  
  $scope.change_day = function(day){
   $scope.active_day = ""
   $scope.active_day = day
  }

  // 以上是创建日历

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
最简单的jQuery程序 入门者学习
Jul 09 Javascript
javascript 短路法代码精简
Aug 20 Javascript
JavaScript中获取未知对象属性的代码
Apr 27 Javascript
在JS数组特定索引处指定位置插入元素
Jul 27 Javascript
ajaxFileUpload.js插件支持多文件上传的方法
Sep 02 Javascript
JS实现模拟风力的雪花飘落效果
May 13 Javascript
浅谈JavaScript中的string拥有方法的原因
Aug 28 Javascript
在JavaScript中调用Java类和接口的方法
Sep 07 Javascript
JavaScript和jQuery制作光棒效果
Feb 24 Javascript
jquery操作ul的一些操作笔记整理(干货)
Aug 31 jQuery
深入理解react 组件类型及使用场景
Mar 07 Javascript
Javascript查看大图功能代码实现
May 07 Javascript
基于JavaScript表单脚本(详解)
Oct 18 #Javascript
VUE饿了么树形控件添加增删改功能的示例代码
Oct 17 #Javascript
vue-router实现tab标签页(单页面)详解
Oct 17 #Javascript
BACKBONE.JS 简单入门范例
Oct 17 #Javascript
JS获取一个表单字段中多条数据并转化为json格式
Oct 17 #Javascript
JS解决position:sticky的兼容性问题的方法
Oct 17 #Javascript
JS实现div模块的截图并下载功能
Oct 17 #Javascript
You might like
什么是短波收听SWL
2021/03/01 无线电
增加反向链接的101个方法 站长推荐
2007/01/31 PHP
PHP面向对象分析设计的经验原则
2008/09/20 PHP
php 仿Comsenz安装效果代码打包提供下载
2010/05/09 PHP
php实现文件下载简单示例(代码实现文件下载)
2014/03/10 PHP
PHP中的事务使用实例
2015/05/26 PHP
浅析PHP中的 inet_pton 网络函数
2019/12/16 PHP
JS 文件本身编码转换 图文教程
2009/10/12 Javascript
jquery.lazyload  实现图片延迟加载jquery插件
2010/02/06 Javascript
jquery 笔记 事件
2011/11/02 Javascript
javascript实现ecshop搜索框键盘上下键切换控制
2015/03/18 Javascript
javascript实现随时变化着的背景颜色
2015/04/02 Javascript
实例解析jQuery插件EasyUI最常用的表单验证规则
2015/11/29 Javascript
详解JavaScript的表达式与运算符
2015/11/30 Javascript
JS模态窗口返回值兼容问题的完美解决方法
2016/05/28 Javascript
jQuery实现最简单的切换图效果【可兼容IE6、火狐、谷歌、opera等】
2016/09/04 Javascript
浅谈Node.js:Buffer模块
2016/12/05 Javascript
vue-cli如何快速构建vue项目
2017/04/26 Javascript
JS实现textarea通过换行或者回车把多行数字分割成数组并且去掉数组中空的值
2018/10/29 Javascript
微信小程序基于picker实现级联菜单
2019/02/15 Javascript
[46:00]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#4EG VS Fnatic第一局
2016/03/03 DOTA
[00:30]明星选手化身超级英雄!2018DOTA2亚洲邀请赛全明星赛来临!
2018/04/06 DOTA
python通过smpt发送邮件的方法
2015/04/30 Python
在PyCharm环境中使用Jupyter Notebook的两种方法总结
2018/05/24 Python
Python面向对象程序设计OOP入门教程【类,实例,继承,重载等】
2019/01/05 Python
Django 解决由save方法引发的错误
2020/05/21 Python
pytorch 把图片数据转化成tensor的操作
2021/03/04 Python
html5 canvas实现跟随鼠标旋转的箭头
2016/03/11 HTML / CSS
基于HTML5 Canvas 实现弹出框效果
2017/06/05 HTML / CSS
爱奇艺VIP会员:大剧抢先看
2018/07/11 全球购物
教师个人的自我评价分享
2014/01/02 职场文书
大学旷课检讨书
2014/01/28 职场文书
偷看我的初中毕业鉴定
2014/01/29 职场文书
党的群众路线教育实践活动个人对照检查材料(企业)
2014/11/05 职场文书
文明和谐家庭事迹材料(2016精选版)
2016/02/29 职场文书
JavaScript中关于预编译、作用域链和闭包的理解
2021/03/31 Javascript