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 相关文章推荐
js猜数字小游戏的简单实现代码
Jul 02 Javascript
jQuery实用函数用法总结
Aug 29 Javascript
jQuery on()方法绑定动态元素的点击事件实例代码浅析
Jun 16 Javascript
Bootstrap select多选下拉框实现代码
Dec 23 Javascript
微信小程序 Button 组件详解及简单实例
Jan 10 Javascript
浅谈regExp的test方法取得的值变化的原因及处理方法
Mar 01 Javascript
js实现3D图片环展示效果
Mar 09 Javascript
在微信小程序中保存网络图片
Feb 12 Javascript
简谈创建React Component的几种方式
Jun 15 Javascript
Javascript查看大图功能代码实现
May 07 Javascript
解决vue-router路由拦截造成死循环问题
Aug 05 Javascript
vue中控制mock在开发环境使用,在生产环境禁用方式
Apr 06 Vue.js
基于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下载xls文件(自己动手写的)
2014/04/18 PHP
php集成环境xampp中apache无法启动问题解决方案
2014/11/18 PHP
PHP使用xpath解析XML的方法详解
2017/05/20 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
2018/02/23 PHP
使用jQuery简化Ajax开发 Ajax开发入门
2009/10/14 Javascript
javascript中删除指定数组中指定的元素的代码
2011/02/12 Javascript
js判断iframe内的网页是否滚动到底部触发事件
2014/03/18 Javascript
js自动生成的元素与页面原有元素发生堆叠的解决方法
2014/09/04 Javascript
JavaScript charCodeAt方法入门实例(用于取得指定位置字符的Unicode编码)
2014/10/17 Javascript
jQuery的context属性用法实例
2014/12/27 Javascript
JavaScript动态改变div属性的实现方法
2015/07/22 Javascript
javascript多物体运动实现方法分析
2016/01/08 Javascript
JavaScript事件 &quot;事件对象&quot;的注意要点
2016/01/14 Javascript
第六章之辅组类与响应式工具
2016/04/25 Javascript
jquery中的常见问题及快速解决方法小结
2016/06/14 Javascript
jQuery soColorPacker 网页拾色器
2016/06/22 Javascript
浅谈js继承的实现及公有、私有、静态方法的书写
2016/10/28 Javascript
微信小程序 地图(map)实例详解
2016/11/16 Javascript
jQuery插件Validation表单验证详解
2018/05/26 jQuery
react native 仿微信聊天室实例代码
2019/09/17 Javascript
Javascript查看大图功能代码实现
2020/05/07 Javascript
[02:32]DOTA2亚洲邀请赛 C9战队出场宣传片
2015/02/07 DOTA
[48:47]VGJ.S vs NB 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python数组复制拷贝的实现方法
2015/06/09 Python
python根据京东商品url获取产品价格
2015/08/09 Python
Python工厂函数用法实例分析
2018/05/14 Python
Python使用cx_Freeze库生成msi格式安装文件的方法
2018/07/10 Python
Python 3.8中实现functools.cached_property功能
2019/05/29 Python
利用rest framework搭建Django API过程解析
2019/08/31 Python
pycharm通过anaconda安装pyqt5的教程
2020/03/24 Python
一款纯css3实现的竖形二级导航的实例教程
2014/12/11 HTML / CSS
html5中canvas图表实现柱状图的示例
2017/11/13 HTML / CSS
法人任命书范本
2014/06/04 职场文书
城市创卫标语
2014/06/17 职场文书
企业公益活动策划方案
2014/08/24 职场文书
2016大学先进团支部事迹材料
2016/03/01 职场文书