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 相关文章推荐
最新优化收藏到网摘代码(digg,diigo)
Feb 07 Javascript
jQuery DOM操作小结与实例
Jan 07 Javascript
推荐17个优美新鲜的jQuery的工具提示插件
Sep 14 Javascript
window.event.keyCode兼容IE和Firefox实现js代码
May 30 Javascript
JavaScript 获取任一float型小数点后两位的小数
Jun 30 Javascript
angularJS结合canvas画图例子
Feb 09 Javascript
JS打字效果的动态菜单代码分享
Aug 21 Javascript
jQuery实现图片文字淡入淡出效果
Dec 21 Javascript
JS使用JSON作为参数实例分析
Jun 23 Javascript
js移动端事件基础及常用事件库详解
Aug 15 Javascript
js实现自定义右键菜单
May 18 Javascript
three.js显示中文字体与tween应用详析
Jan 04 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
11个PHP 分页脚本推荐
2011/08/15 PHP
php中0,null,empty,空,false,字符串关系的详细介绍
2013/06/20 PHP
关于php 接口问题(php接口主要也就是运用curl,curl函数)
2013/07/01 PHP
PHP生成唯一订单号的方法汇总
2015/04/16 PHP
php实现评论回复删除功能
2017/05/23 PHP
php在windows环境下获得cpu内存实时使用率(推荐)
2018/02/08 PHP
PHP从零开始打造自己的MVC框架之路由类实现方法分析
2019/06/03 PHP
兼容ie、firefox的图片自动缩放的css跟js代码分享
2013/08/12 Javascript
window.showModalDialog()返回值的学习心得总结
2014/01/07 Javascript
javascript引用赋值(地址传值)用法实例
2015/01/13 Javascript
为JS扩展Array.prototype.indexOf引发的问题及解决办法
2015/01/21 Javascript
js实现带缓冲效果的仿QQ面板折叠菜单代码
2015/09/06 Javascript
JS插件overlib用法实例详解
2015/12/26 Javascript
AngularJS入门心得之directive和controller通信过程
2016/01/25 Javascript
详解javascript跨浏览器事件处理程序
2016/03/27 Javascript
Bootstrap与Angularjs的模态框实例代码
2017/08/03 Javascript
bootstrap fileinput插件实现预览上传照片功能
2018/01/23 Javascript
JS实现自定义弹窗功能
2018/08/08 Javascript
详解关于Vuex的action传入多个参数的问题
2019/02/22 Javascript
this.$toast() 了解一下?
2019/04/18 Javascript
es6函数name属性功能与用法实例分析
2020/04/18 Javascript
在Angular中实现一个级联效果的下拉框的示例代码
2020/05/20 Javascript
Python中条件选择和循环语句使用方法介绍
2013/03/13 Python
python获取从命令行输入数字的方法
2015/04/29 Python
Python while、for、生成器、列表推导等语句的执行效率测试
2015/06/03 Python
Python编程入门之Hello World的三种实现方式
2015/11/13 Python
Python切片操作实例分析
2018/03/16 Python
Python实现随机爬山算法
2021/01/29 Python
英国最大的海报商店:GB Posters
2018/03/20 全球购物
狗狗玩具、零食和咀嚼物的月度送货服务:Super Chewer
2018/08/22 全球购物
linux面试题参考答案(5)
2016/11/05 面试题
班组长工作职责
2013/12/25 职场文书
二年级评语大全
2014/04/23 职场文书
2014政府领导班子对照检查材料思想汇报(3篇)
2014/09/26 职场文书
Vue+Flask实现图片传输功能
2022/04/01 Vue.js
联想win10摄像头打不开怎么办?win10笔记本摄像头打不开解决办法
2022/04/08 数码科技