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入门教程(2) JS基础知识
Jan 31 Javascript
同一个表单 根据要求递交到不同页面的实现方法小结
Aug 05 Javascript
防止按钮在短时间内被多次点击的方法
Mar 10 Javascript
json中换行符的处理方法示例介绍
Jun 10 Javascript
Canvas实现动态的雪花效果
Feb 13 Javascript
详解vue表单验证组件 v-verify-plugin
Apr 19 Javascript
JS点击缩略图整屏居中放大图片效果
Jul 04 Javascript
AngularJS实现的生成随机数与猜数字大小功能示例
Dec 25 Javascript
Vue.js做select下拉列表的实例(ul-li标签仿select标签)
Mar 02 Javascript
JS中类的静态方法,静态变量,实例方法,实例变量区别与用法实例分析
Mar 14 Javascript
Ant Design的Table组件去除
Oct 24 Javascript
vue+elementui通用弹窗的实现(新增+编辑)
Jan 07 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 注释规范
2012/03/29 PHP
C# WinForm中实现快捷键自定义设置实例
2015/01/23 PHP
图文详解PHP环境搭建教程
2016/07/16 PHP
Thinkphp 中 distinct 的用法解析
2016/12/14 PHP
php 使用mpdf实现指定字段配置字体样式的方法
2019/07/29 PHP
JS求平均值的小例子
2013/11/29 Javascript
JS 屏蔽按键效果与改变按键效果的示例代码
2013/12/24 Javascript
JavaScript获取flash对象与网上的有所不同
2014/04/21 Javascript
jQuery层级选择器用法分析
2015/02/10 Javascript
js内置对象处理_打印学生成绩单的简单实现
2016/09/24 Javascript
微信小程序实现星星评价效果
2018/11/02 Javascript
Vue 页面权限控制和登陆验证功能的实例代码
2019/06/20 Javascript
微信小程序实现页面分享onShareAppMessage
2019/08/12 Javascript
JavaScript JSON数据处理全集(小结)
2019/08/15 Javascript
VUEX采坑之路之获取不到$store的解决方法
2019/11/08 Javascript
Vue-CLI与Vuex使用方法实例分析
2020/01/06 Javascript
pygame学习笔记(4):声音控制
2015/04/15 Python
使用Python实现在Windows下安装Django
2018/10/17 Python
详解django自定义中间件处理
2018/11/21 Python
python+opencv实现移动侦测(帧差法)
2020/03/20 Python
python实现人脸签到系统
2020/04/13 Python
python db类用法说明
2020/07/07 Python
详解python方法之绑定方法与非绑定方法
2020/08/17 Python
python 中的9个实用技巧,助你提高开发效率
2020/08/30 Python
以实惠的价格提供高品质的时尚:Newchic
2018/01/18 全球购物
IRO美国官网:法国服装品牌
2018/03/06 全球购物
通往英国高街的商店橱窗:Down Your High Street
2020/07/19 全球购物
C#笔试题
2015/07/14 面试题
公司联欢会策划方案
2014/05/19 职场文书
乡镇平安建设汇报材料
2014/08/25 职场文书
研究生毕业论文导师评语
2014/12/31 职场文书
护士医德考评自我评价
2015/03/03 职场文书
2015年药房工作总结
2015/04/25 职场文书
2015年社区工会工作总结
2015/05/26 职场文书
纯CSS如何禁止用户复制网页的内容
2021/11/01 HTML / CSS
Python调用腾讯API实现人脸身份证比对功能
2022/04/04 Python