bootstrap-year-calendar是一款非常实用的基于Bootstrap3带记事功能的全年日历插件。该日历插件使用简单,可以动态在某个日期上设置备忘录,可以自定义高亮日期样式和选择最大日期和最小日期范围等。
该Bootstrap全年日历插件目前只支持英文和法文两种语言。
使用方法
使用bootstrap-year-calendar插件需要引入jQuery、Bootstap3的相关依赖文件和插件本身需要的js和css文件。
<link rel="stylesheet" type="text/css" href="bootstrap-3.3.5/css/bootstrap.min.css" /> <link rel="stylesheet" type="text/css" href="css/bootstrap-year-calendar.min.css"> <script type="text/javascript" src="jquery.min.js"></script> <script type="text/javascript" src="bootstrap-3.3.5/js/bootstrap.min.js"></script> <script type="text/javascript" src="js/bootstrap-datepicker.min.js"></script> <script type="text/javascript" src="js/bootstrap-year-calendar.min.js"></script> <script type="text/javascript" src="js/bootstrap-popover.js"></script>
HTML结构
该Bootstrap3带记事功能的全年日历插件最简单的HTML结构是使用一个空的<div>
作为日历的容器。
<div id="calendar"></div>
初始化插件
在页面DOM元素加载完毕之后,可以通过下面的方法来初始化该日历插件。
$('.calendar').calendar()
或者在初始化插件的时候设置一些配置参数:
$('.calendar').calendar(options)
也可以直接在HTML元素上使用data-provide
属性来初始化插件。
<div data-provide="calendar"></div>
配置参数
bootstrap-year-calendar全年日历插件的可用配置参数有:
allowOverlap
:类型:Boolean;默认值:true
;指定用户是否可以选择一个在DataSource中于其它元素范围重叠的日期范围。Get/Set方法:
getAllowOverlap()
,setAllowOverlap()
contextMenuItems
:类型:Array of: { text: String, click: function(dataSourceElement), subMenu: [] }
;默认值:false
;指定上下文菜单的默认项。Get/Set方法:
getContextMenuItems()
,setContextMenuItems()
dataSource
:类型:Array of: { startDate: Date, endDate: Date, name: String, ... }
;默认值:[]
;显示在日历中的日期元素。Get/Set方法:
getDataSource()
,setDataSource()
disableDays
:类型:Array of Date;默认值:[]
;不可用的日期。Get/Set方法:
getDisableDays()
,setDisableDays()
displayWeekNumber
:类型:Boolean;默认值:false
;是否显示星期的序号。Get/Set方法:
getDisplayWeekNumber()
,setDisplayWeekNumber()
enableContextMenu
:类型:Boolean;默认值:false
;是否在右键点击一个日期时显示上下文菜单。Get/Set方法:
getEnableContextMenu()
,setEnableContextMenu()
enableRangeSelection
:类型:Boolean;默认值:false
;用户是否可以选择一个日期范围。Get/Set方法:
getEnableRangeSelection()
,setEnableRangeSelection()
language
:类型:String;默认值:en
;当前日历的语言,目前只支持英语和法语。Get/Set方法:
getLanguage()
,setLanguage()
maxDate
:类型:Date;默认值:null
;最大的日期时间,用户不能设置最大日期之后的备忘录。Get/Set方法:
getMaxDate()
,getMaxDate()
minDate
:类型:Date;默认值:null
;最小的日期时间,用户不能设置最小日期之前的备忘录。Get/Set方法:
getMaxDate()
,getMaxDate()
startYear
:类型:Number;默认值:当期年份;日历打开时显示的年份。Get/Set方法:
getYear()
,setYear()
style
:类型:String;默认值:'border'
;指定备忘录日期的样式。Get/Set方法:
getStyle()
,setStyle()
事件
你可以在初始化的时候为一个日历绑定事件:
$('#element').calendar({ clickDay: function(e) { ... } });
或者使用jQuery方法来绑定日历事件:
$('#element').clickDay(function(e){ ... });
或者:
$('#element').bind('clickDay', function(e){ ... });
clickDay
:当某个日期被点击时触发。事件参数:
- element (DOM element):被点击日期的HTML元素。
- date (Date):被点击日期的日期。
- which (Number):The number of the button used for clicking (from the original click event)。
- events (Array of data source element):被点击日期的数据源。
dayContextMenu
:当一个日期被右键点击的时候触发。事件参数:
- element (DOM element):被点击日期的HTML元素。
- date (Date):被点击日期的日期。
- events (Array of data source element):被点击日期的数据源。
mouseOnDay
:当鼠标进入某个日期时触发。事件参数:
- element (DOM element):被点击日期的HTML元素。
- date (Date):被点击日期的日期。
- events (Array of data source element):被点击日期的数据源。
mouseOutDay
::当鼠标离开某个日期时触发。事件参数:
- element (DOM element):被点击日期的HTML元素。
- date (Date):被点击日期的日期。
- events (Array of data source element):被点击日期的数据源。
renderDay
:当渲染某个日期时触发。事件参数:
- element (DOM element):被点击日期的HTML元素。
- date (Date):被渲染的日期。
renderEnd
:当一个日期渲染结束时候触发。事件参数:
- currentYear(Number):日历上显示的年份。
selectRange
:当一个日期范围被选择的时候触发。事件参数:
- startDate (Date): 日期范围的开始日期。
- endDate (Date): 日期范围的结束日期。
关于该bootstrap-year-calendar全年日历插件的更多信息可以参考:http://www.bootstrap-year-calendar.com/