open setSpecialDates cancelSpecialDates close show hide nextMonth prevMonth nextYear prevYear setDate turnPage
为帮助用户更好更快的使用插件,论坛维护了一个示例,示例中包含示例代码、知识点讲解、注意事项等,供您参考。
UICalendar 是一个日历选择插件;可自定义日历的样式,添加特殊日期标注,切换月份,设置指定日期;用于实现常用的日期选择,日历展示功能。UICalendar 插件是 calendar 插件的优化版。
注:针对单日的样式优先级序列为:
selected>setSpecialDate>specialDate>styles_specialDate>today
插件截图:
***该插件源码已开源,地址
打开日历
open({params}, callback(ret))
multipleSelect:
rect:
{
x: 0, //(可选项)数字类型;插件左上角的 x 坐标(相对于所属的 Window 或 Frame);默认:0
y: 0, //(可选项)数字类型;插件左上角的 y 坐标(相对于所属的 Window 或 Frame);默认:0
w: 320, //(可选项)数字类型;仅iOS支持设置'auto';插件的宽度;默认:所属的 Window 或 Frame 的宽度
h: 220 //(可选项)数字类型;仅iOS支持设置'auto';插件的高度;默认:220
}
styles:
{
bg: 'rgba(0,0,0,0)', //(可选项)字符串类型;日历整体背景,支持 rgb、rgba、#、图片路径,要求本地路径(fs://、widget://);默认:'rgba(0,0,0,0)'
week: { //(可选项)JSON对象,星期的样式
weekdayColor: '#3b3b3b', //(可选项)字符串类型;平日文字的颜色,支持 rgb、rgba、#;默认:'#3b3b3b'
weekendColor: '#a8d400', //(可选项)字符串类型;周末文字的颜色,支持 rgb、rgba、#;默认:'#a8d400'
size: 24 //(可选项)数字类型;星期文字的大小;默认:24
},
date: { //(可选项)JSON对象,普通日期的样式
color: '#3b3b3b', //(可选项)字符串类型;普通日期文字的颜色;支持 rgb、rgba、#;默认:'#3b3b3b'
selectedColor: '#fff', //(可选项)字符串类型;普通日期选中后的文字颜色,支持 rgb、rgba、#;默认:'#fff'
selectedBg: '#a8d500', //(可选项)字符串类型;普通日期选中后的背景,支持 rgb、rgba、#,图片路径,要求本地路径(fs://、widget://);默认:'#a8d500'
size: 24 //(可选项)数字类型;普通日期文字的大小;默认:24
},
today: { //(可选项)JSON对象,设备当前日期的样式
color: '#a8d500', //(可选项)字符串类型;当前日期的文字颜色,支持 rgb、rgba、#;默认:'#a8d500'
bg: 'widget://' //(可选项)字符串类型;当前日期的背景,支持 rgb、rgba、#,图片路径,要求本地路径(fs://、widget://)
},
specialDate: { //(可选项)JSON对象,需要标记的特殊日期的通用样式
color: '#3b3b3b', //(可选项)字符串类型;文字颜色,支持 rgb、rgba、#;默认:与普通日期文字颜色一致
bg: 'widget://' //(可选项)字符串类型;支持 rgb、rgba、#,图片路径,要求本地路径(fs://、widget://);默认:与普通日期选中后的背景一致
}
}
specialDate:
[{
date: '2015-07-27' //字符串类型;日期字符串,格式为:yyyy-MM-dd
color: '#3b3b3b', //(可选项)字符串类型;文字颜色,支持 rgb、rgba、#;默认:与 styles->specialDate->color 一致
bg: 'widget://' //(可选项)字符串类型;支持 rgb、rgba、#,图片路径,要求本地路径(fs://、widget://);默认:与 styles->specialDate->bg 一致
}]
switchMode:
isBefore:
isAfter:
showTodayStyle:
canScroll:
fixedOn:
fixed:
ret:
{
eventType: 'show', //字符串类型;交互事件类型
//取值范围:
//show(日历显示)
//switch(水平或垂直切换月份)
//special(点击特殊日期)
//normal(点击普通日期)
//cancelNormal(取消点击普通日期)
//cancelSpecial(取消点击特殊日期)
year: 2015, //数字类型;当前选择的年份
month: 7, //数字类型;当前选择的月份
day: 27, //数字类型;当前选择的日期
id:0 //数字类型,打开日历视图的ID
}
var UICalendar = api.require('UICalendar');
UICalendar.open({
rect: {
x: 30,
y: api.frameHeight / 2 - 170,
w: api.frameWidth - 60,
h: 340
},
styles: {
bg: 'rgba(0,0,0,0)',
week: {
weekdayColor: '#3b3b3b',
weekendColor: '#a8d400',
size: 12
},
date: {
color: '#3b3b3b',
selectedColor: '#fff',
selectedBg: '#a8d500',
size: 12
},
today: {
color: 'rgb(230,46,37)',
bg: ''
},
specialDate: {
color: '#a8d500',
bg: 'widget://image/a.png'
}
},
specialDate: [{
date: '2015-06-01'
}],
switchMode: 'vertical',
fixedOn: api.frameName,
fixed: false
}, function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
设置特殊日期
setSpecialDates({params})
id:
specialDates:
[{
date: '2015-07-27' //字符串类型;日期字符串,格式为:yyyy-MM-dd
color: '#3b3b3b', //(可选项)字符串类型;文字颜色,支持 rgb、rgba、#;默认:与 styles->specialDate->color 一致
bg: 'widget://' //(可选项)字符串类型;支持 rgb、rgba、#,图片路径,要求本地路径(fs://、widget://);默认:与 styles->specialDate->bg 一致
}]
var UICalendar = api.require('UICalendar');
UICalendar.setSpecialDates({
id: ,
specialDates: [{
date: '2015-12-07',
color: '#abckde',
bg: '#ff0000'
}, {
date: '2015-12-08',
color: '#abckde',
bg: '#ff0000'
}]
});
iOS系统,Android系统
可提供的1.0.0及更高版本
取消已设置的特殊日期状态
cancelSpecialDates({params})
id:
specialDates:
var UICalendar = api.require('UICalendar');
UICalendar.cancelSpecialDates({
specialDates: ['2015-12-08', '2015-12-07']
});
iOS系统,Android系统
可提供的1.0.0及更高版本
关闭日历
close({params})
id:
var UICalendar = api.require('UICalendar');
UICalendar.close({id:0});
iOS系统,Android系统
可提供的1.0.0及更高版本
显示日历
show({params})
id:
var UICalendar = api.require('UICalendar');
UICalendar.show({id:0});
iOS系统,Android系统
可提供的1.0.0及更高版本
隐藏日历
hide({params})
id:
var UICalendar = api.require('UICalendar');
UICalendar.hide({id:0});
iOS系统,Android系统
可提供的1.0.0及更高版本
显示下个月
nextMonth({params},callback(ret))
id:
ret:
{
year: '2015', //数字类型;当前显示的年份
month: '8' //数字类型;当前显示的月份
}
var UICalendar = api.require('UICalendar');
UICalendar.nextMonth({
id:0
},function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
显示上个月
prevMonth({params},callback(ret))
id:
ret:
{
year: '2015', //数字类型;当前显示的年份
month: '6' //数字类型;当前显示的月份
}
var UICalendar = api.require('UICalendar');
UICalendar.prevMonth({
id:0
},function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
显示下一年
nextYear({params},callback(ret))
id:
ret:
{
year: '2016', //数字类型;当前显示的年份
month: '6' //数字类型;当前显示的月份
}
var UICalendar = api.require('UICalendar');
UICalendar.nextYear({
id:0
},function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
显示上一年
prevYear({params},callback(ret))
id:
ret:
{
year: '2014', //数字类型;当前显示的年份
month: '6' //数字类型;当前显示的月份
}
var UICalendar = api.require('UICalendar');
UICalendar.prevYear({
id:0
},function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
设置选中日期(不支持日期多选模式)
setDate({params}, callback(ret))
id:
date:
ignoreSelected:
ret:
{
status: true //布尔型;true||false
}
var UICalendar = api.require('UICalendar');
UICalendar.setDate({
date: '2015-08-08',
ignoreSelected: false,
id:0
}, function(ret, err) {
if (ret.status) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
翻到指定的页
turnPage({params})
id:
date:
var UICalendar = api.require('UICalendar');
UICalendar.turnPage({
date: '2015-08'
});
iOS系统,Android系统
可提供的1.0.0及更高版本
为帮助用户更好更快的使用插件,论坛维护了一个示例,示例中包含示例代码、知识点讲解、注意事项等,供您参考。