• jquery日历插件FullCalendar使用技巧


     
    FullCalendar是一款基于jquery的日历控件,它有着很强大的功能,下面我来给大家介绍一下FullCalendar使用技巧吧,希望此方法对各位有帮助呀。

    简介

    官方网站:
    http://arshaw.com/fullcalendar/
    英文文档:
    http://arshaw.com/fullcalendar/docs/


    使用方法

    1. 下载压缩包fullcalendar-1.6.3.zip解压
    2. 在html页面中导入资源

     代码如下 复制代码

    <script type="text/javascript" src="js/jquery-1.10.2.min.js"></script>
    <script type="text/JavaScript" src="js/jQuery-ui-1.10.3.custom.min.js"></script>
    <script type="text/javascript" src="js/fullcalendar.min.js"></script>

    几点说明:
    FullCalendar需要jquery,如果项目已经引入了jquery,此处不需要重复导入
    如果要在日历中使用鼠标拖拽功能,需要导入jquery-ui
    压缩包中包含的jquery-ui文件仅包含了jquery.ui.core.js, jquery.ui.widget.js, jquery.ui.mouse.js, jquery.ui.draggable.js, jquery.ui.resizable.js的功能;如果项目已经引入了包含以上功能的jquery-ui文件,此处不可重复导入,重复导入会造成jquery-ui的其它功能失效
    3. 调用插件

     代码如下 复制代码

    $(function(){
     $('#calenderDemo').fullCalendar({});
    });

    配置日历表头

     代码如下 复制代码

    $('#calenderDemo').fullCalendar({
     header:{
      left: 'prev,next today',
      center: 'title',
      right: 'month,agendaWeek,agendaDay'
     }
    });

    left、center、right参数对应页面表头三个位置(左、中、右),参数值多个之间可以使用逗号或者空格隔开,可选值范围如下:
    title – 当前日期文本
    prev – 向前翻按钮
    next – 向后翻按钮
    prevYear – 前一年按钮
    nextYear – 后一年按钮
    today – 今天按钮
    month – 月视图
    basicWeek – 周视图
    basicDay – 日视图
    agendaWeek – 带小时周视图
    agendaDay – 带小时日视图

    配置中文界面

     代码如下 复制代码

    $('#calenderDemo').fullCalendar({
     buttonText: {
      today: '今天',
      month: '月',
      week: '周',
      day: '天'
     },
     allDayText: '全天',
     monthNames: ['一月','二月','三月','四月','五月','六月','七月','八月','九月','十月','十一月','十二月'],
     monthNamesShort: ['1','2','3','4','5','6','7','8','9','10','11','12'],
     dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'],
     dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'],
    });

    日程对象event
    日历中显示的日程事件

     代码如下 复制代码
    {
    title: ‘some name’,
    start: ’2013-08-08′,
    end: ’2013-08-12′
    }

    基本参数说明
    title – 事件名称,显示在日程中
    start – 日程开始时间
    end – 日程结束时间
    其它参数
    id
    allDay
    url
    className
    editable
    startEditable
    durationEditable
    source
    color
    backgroundColor
    borderColor
    textColor
    除此以外,可以根据功能需要在event对象中添加自定义的属性

    显示日程

     代码如下 复制代码

    $('#calenderDemo').fullCalendar({
     events:[]
    });

    添加参数events: array/json string/function
    可以为数组:

     代码如下 复制代码

    events: [
     {
      title: 'All Day Event',
      start: new Date()
     },
     {
      title: 'Long Event',
      start: new Date(),
      end: new Date(new Date().getTime()+86400000)
     }
    ]

    可以通过ajax加载json数据:

     代码如下 复制代码

    events: {
     url: '/myfeed.PHP',
     type: 'POST',
     data: {
      custom_param1: 'something',
      custom_param2: 'somethingelse'
     },
     error: function() {
      alert('there was an error while fetching events!');
     },
     color: 'yellow',   // a non-ajax option
     textColor: 'black' // a non-ajax option
    }

    也可以是一个function:

     代码如下 复制代码

    events: function(start, end, callback) {
     // 取得日程数据后回调
     callback(events);
    }

    添加日程
    通过点击日历单元格,添加新日程

     代码如下 复制代码

    var calendar = $('#calenderDemo').fullCalendar({
     dayClick: function(date, allDay, jsEvent, view) {
      // 此处可以进行弹窗、后台通信等处理
      // 本例仅在日历中添加一个新日程
      calendar.fullCalendar('renderEvent',
       {
        title: '日程' + new Date().getTime(),
        start: date,
        allDay: allDay
       }
      );
     }
    });

    参数说明
    date – 当前日期,在agendaWeek、agendaDay视图点击时包含时间
    allDay – 在agendaWeek、agendaDay视图点击时为false,其它情况为true
    jsEvent – 原生javascript事件
    view – 当前视图对象

    修改日程
    点击当前显示的日程,修改日程

     代码如下 复制代码

    var calendar = $('#calenderDemo').fullCalendar({
     eventClick : function(event, jsEvent, view) {
      // 此处可添加修改日程的代码
      var red = Math.round(255 * Math.random());
      var green = Math.round(255 * Math.random());
      var blue = Math.round(255 * Math.random());
      $(this).css('background-color', 'rgb(' + red + ',' + green + ',' + blue + ')');
     }
    });

    event参数为当前点击的日程

    鼠标拖动改变日程时间范围
    使用鼠标在页面上直接拖动改变日程时间范围,需要jquery-ui的拖拽功能,初始化时需配置参数editable为true来启用拖动功能。

     代码如下 复制代码

    var calendar = $('#calenderDemo').fullCalendar({
     editable : true,
     eventDrop : function(event, dayDelta, minuteDelta, allDay, revertFunc, jsEvent, ui, view) {
      // 拖动某个日程到新位置时,日程时间改变,此处可做相关处理
     }
    });

    参数说明
    dayDelta – 保存了这次拖动导致该日程事件移动了多少天, 向前为正数, 向后为负数
    minuteDelta – 保存了这次拖动导致该日程事件移动了多少分钟, 向前为正数, 向后为负数,该值只有在agenda view下有效
    allDay – 如果在month view下移动, 或在agenda view下移动到all-day区域, 则allDay为true, 移动到agenda view的其他区域则为false
    revertFunc – 调用该方法, 可以将刚才的拖动恢复到原状。这个方法多用于ajax的提交, 移动之后, 提交数据到后台, 如果后台更新失败, 根据返回消息, 调用这个方法, 可以使页面回复原状

     代码如下 复制代码

    var calendar = $('#calenderDemo').fullCalendar({
     editable : true,
     eventResize : function(event, dayDelta, minuteDelta, revertFunc, jsEvent, ui, view) {
      // 改变某个日程大小,日程结束时间改变,此处可做相关处理
     }
    });

    参数与eventDrop回调类似,以下仅说明不同之处:
    dayDelta – 保存了日程结束时间变化了多少天,向前为正数, 向后为负数
    minuteDelta -保存了日程结束时间变化了多少分钟, 向前为正数, 向后为负数,该值只有在agenda view下有效,其它情况为0

    鼠标划过选择一段日期
    类似在资源管理器中选择多个文件的操作,使用鼠标在页面上选择一段日期进行操作,例如添加日程,需要配置selectable参数为true
    在一个单元格上,鼠标划过选择事件select和鼠标点击单元格事件dayClick会被同时触发

     代码如下 复制代码

    var calendar = $('#calenderDemo').fullCalendar({
     selectable : true,
     select : function(startDate, endDate, allDay, jsEvent, view) {
      // 选中一段日期,此处可做相关处理
      // 处理完成后,取消选中状态
      calendar.fullCalendar('unselect');
     }
    });

    参数说明
    startDate – 开始日期
    endDate – 结束日期,当allDay为true时,结束日期包含最后一天

  • 相关阅读:
    shell 脚本实现yum安装 LAMP 架构的 wordpress
    redis主从及哨兵和cluster集群
    扫描网段中服务器显示状态
    利用for循环输出九九乘法表
    正则表达式取文件后缀
    利用正则表达式实现yes/no判断
    判断输入的IP地址是否合法
    Shell脚本编程基础之shell脚本条件测试命令
    Shell脚本编程基础之shell脚本逻辑运算
    Shell脚本编程基础之shell脚本算术运算
  • 原文地址:https://www.cnblogs.com/zhongshiqiang/p/6900161.html
Copyright © 2020-2023  润新知