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 相关文章推荐
JavaScript中valueOf函数与toString方法深入理解
Dec 02 Javascript
在JS数组特定索引处指定位置插入元素
Jul 27 Javascript
javascript里绝对用的上的字符分割函数总结
Jul 31 Javascript
jQuery选择器源码解读(六):Sizzle选择器匹配逻辑分析
Mar 31 Javascript
jQuery横向擦除焦点图特效代码分享
Sep 06 Javascript
JS组件Bootstrap实现弹出框效果代码
Apr 26 Javascript
Wireshark基本介绍和学习TCP三次握手
Aug 15 Javascript
ionic实现带字的toggle滑动组件
Aug 27 Javascript
实现点击下箭头变上箭头来回切换的两种方法【推荐】
Dec 14 Javascript
socket.io实现在线群聊功能
Apr 07 Javascript
Vue 实现CLI 3.0 + momentjs + lodash打包时优化
Nov 13 Javascript
利用JavaScript写一个简单计算器
Nov 27 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
dedecms系统的广告设置代码 基础版本
2010/04/09 PHP
php中判断文件存在是用file_exists还是is_file的整理
2012/09/12 PHP
PHP重定向的3种方式
2013/03/07 PHP
php实现读取手机客户端浏览器的类
2015/01/09 PHP
PHP使用第三方即时获取物流动态实例详解
2017/04/27 PHP
php基于自定义函数记录log日志方法
2017/07/21 PHP
Laravel中的chunk组块结果集处理与注意问题
2018/08/15 PHP
判断多个input type=file是否有已经选择好文件的代码
2012/05/23 Javascript
javascript 常用验证函数总结
2016/06/28 Javascript
纯js实现悬浮按钮组件
2016/12/17 Javascript
jQuery的中 is(':visible') 解析及用法(必看)
2017/02/12 Javascript
webpack打包node.js后端项目的方法
2018/03/10 Javascript
详解NodeJS Https HSM双向认证实现
2019/03/12 NodeJs
浅谈vue加载优化策略
2019/03/19 Javascript
在Angular中实现一个级联效果的下拉框的示例代码
2020/05/20 Javascript
Vue CLI4 Vue.config.js标准配置(最全注释)
2020/06/05 Javascript
python 中文乱码问题深入分析
2011/03/13 Python
Python中多线程及程序锁浅析
2015/01/21 Python
基于python实现微信模板消息
2015/12/21 Python
关于python pyqt5安装失败问题的解决方法
2017/08/08 Python
20个常用Python运维库和模块
2018/02/12 Python
利用Python实现微信找房机器人实例教程
2019/03/10 Python
django中的图片验证码功能
2019/09/18 Python
TensorFlow keras卷积神经网络 添加L2正则化方式
2020/05/22 Python
简单了解Python变量作用域正确使用方法
2020/06/12 Python
localstorage和sessionstorage使用记录(推荐)
2017/05/23 HTML / CSS
Canvas实现贝赛尔曲线轨迹动画的示例代码
2019/04/25 HTML / CSS
英国网上香水店:Fragrance Direct
2016/07/20 全球购物
Pottery Barn阿联酋:购买家具、家居装饰及更多
2019/12/08 全球购物
工程造价管理专业大专生求职信
2013/10/06 职场文书
学习方法演讲稿
2014/05/10 职场文书
接收函格式
2015/01/30 职场文书
小平您好观后感
2015/06/09 职场文书
英文投诉信格式
2015/07/03 职场文书
Pytorch 中net.train 和 net.eval的使用说明
2021/05/22 Python
SQLServer RANK() 排名函数的使用
2022/03/23 SQL Server