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获得页面元素的坐标值实现思路及代码
Apr 15 Javascript
jQuery客户端分页实例代码
Nov 18 Javascript
详解JS 比较两个Json对象的值是否相等的实例
Nov 20 Javascript
再JavaScript的jQuery库中编写动画效果的指南
Aug 13 Javascript
使用node.js中的Buffer类处理二进制数据的方法
Nov 26 Javascript
Angular4表单验证代码详解
Sep 03 Javascript
jQuery实现的点击按钮改变样式功能示例
Jul 21 jQuery
JavaScript捕捉事件和阻止冒泡事件实例分析
Aug 03 Javascript
在angularJs中进行数据遍历的2种方法
Oct 08 Javascript
详细讲解如何创建, 发布自己的 Vue UI 组件库
May 29 Javascript
JQuery复选框全选效果如何实现
May 08 jQuery
Python机器学习之决策树和随机森林
Jul 15 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
php遍历目录输出目录及其下的所有文件示例
2014/01/27 PHP
php验证码的制作思路和实现方法
2015/11/12 PHP
由JavaScript中call()方法引发的对面向对象继承机制call的思考
2011/09/12 Javascript
JavaScript运行时库属性一览表
2014/03/14 Javascript
NodeJS使用jQuery选择器操作DOM
2015/02/13 NodeJs
jQuery form 表单验证插件(fieldValue)校验表单
2016/01/24 Javascript
AngularJS 最常用的功能汇总
2016/02/17 Javascript
Ionic2调用本地SQlite实例
2017/04/22 Javascript
angular中不同的组件间传值与通信的方法
2017/11/04 Javascript
jQuery实现的下雪动画效果示例【附源码下载】
2018/02/02 jQuery
微信小程序实现页面下拉刷新和上拉加载功能详解
2018/12/03 Javascript
js中对象和面向对象与Json介绍
2019/01/21 Javascript
vue cli3.0 引入eslint 结合vscode使用
2019/05/27 Javascript
浅谈JS中this在各个场景下的指向
2019/08/14 Javascript
浅谈React中组件逻辑复用的那些事儿
2020/05/21 Javascript
Vue实现简单的拖拽效果
2020/08/25 Javascript
详解vue中使用transition和animation的实例代码
2020/12/12 Vue.js
mapboxgl实现带箭头轨迹线的代码
2021/01/04 Javascript
pycharm 使用心得(四)显示行号
2014/06/05 Python
Python3 适合初学者学习的银行账户登录系统实例
2017/08/08 Python
matplotlib绘图实例演示标记路径
2018/01/23 Python
Django框架中间件(Middleware)用法实例分析
2019/05/24 Python
解决python-docx打包之后找不到default.docx的问题
2020/02/13 Python
用Python制作mini翻译器的实现示例
2020/08/17 Python
Pycharm配置lua编译环境过程图解
2020/11/28 Python
matplotlib相关系统目录获取方式小结
2021/02/03 Python
倩碧香港官方网站:Clinique香港
2017/11/13 全球购物
北京RT科技有限公司.net工程师面试题
2013/02/15 面试题
2014年高三毕业生自我评价
2014/01/11 职场文书
岗位明星事迹材料
2014/05/18 职场文书
2014年初一班主任工作总结
2014/11/08 职场文书
培根随笔读书笔记
2015/07/01 职场文书
2015年秋季校长开学典礼致辞
2015/07/29 职场文书
《彼得与狼》教学反思
2016/02/20 职场文书
Pytorch 实现变量类型转换
2021/05/17 Python
Python 绘制多因子柱状图
2022/05/11 Python