我试图获取日历插件(FullCalendar)以显示不同的天数,具体取决于用户是在移动设备,平板电脑还是桌面断点上查看该网站。为此,我需要日历在桌面上显示正常的一周,在移动设备上显示3天。像普通的插件一样,你初始化元素并传递一些选项。我已经尝试了几件事。
工作代码如下:
$('#calendar').fullCalendar({
timeFormat:'h(:mm)a',
header:{
left:'prev',
center:'title',
right:'next'
},
height: 650,
views: {
basicThreeDay: {
type: 'basic',
duration: { days: 3 },
buttonText: '3 day'
},
},
defaultView: 'basicThreeDay',
titleFormat: {
week: 'MMMM YYYY'
},
columnFormat: {
week: 'dddd M/D',
day: 'ddd M/D'
},
此代码将显示3天视图的日历。这对于移动设备来说很好,但是当我想要显示整整一周时,它会在桌面上显示3天。这基本上就是我想做的事情:
$('#calendar').fullCalendar({
timeFormat:'h(:mm)a',
header:{
left:'prev',
center:'title',
right:'next'
},
height: 650,
if ($(window).width() <= 481){
views: {
basicThreeDay: {
type: 'basic',
duration: { days: 3 },
buttonText: '3 day'
},
},
defaultView: 'basicThreeDay',
} else {
defaultView: 'basicWeek',
}
titleFormat: {
week: 'MMMM YYYY'
},
columnFormat: {
week: 'dddd M/D',
day: 'ddd M/D'
},
我可以将整个函数包装在if语句中,但是,在我复制之后整个函数继续运行。至少200行代码,我不想复制所有代码只是为了获得一次更改。无论如何,我可以根据窗口大小更改选项吗?
我还尝试在上面的函数中将defaultView设置为basicWeek,然后在关闭之后添加:
if (jQuery(window).width() <= 481) {
jQuery('#hp-availability-calendar').fullCalendar({
views: {
basicThreeDay: {
type: 'basic',
duration: { days: 3 },
buttonText: '3 day'
},
},
defaultView: 'basicThreeDay'
});
};
这也不起作用。
答案 0 :(得分:1)
您可以创建一个“view”var并在文档就绪上设置“basicThreeDay”或“basicWeek”,如下所示
sck.nextInt()
或者您可以使用if语句在defaultView中创建一个函数,并像这样返回正确的字符串
var view="basicWeek";//default to basicWeek
if ($(window).width() <= 481){//for mobile
view='basicThreeDay';
}
$('#calendar').fullCalendar({
timeFormat:'h(:mm)a',
header:{
left:'prev',
center:'title',
right:'next'
},
height: 650,
views: {
basicThreeDay: {
type: 'basic',
duration: { days: 3 },
buttonText: '3 day'
},
},
defaultView: view,//will be "basicWeek" on (width>481) and "basicThreeDay" for (width<=481)
titleFormat: {
week: 'MMMM YYYY'
},
columnFormat: {
week: 'dddd M/D',
day: 'ddd M/D'
}
});
如果您设置“basicThreeDay”视图而不管窗口宽度如何,您可以在这样的视图之间进行更改
$('#calendar').fullCalendar({
timeFormat:'h(:mm)a',
header:{
left:'prev',
center:'title',
right:'next'
},
height: 650,
views: {
basicThreeDay: {
type: 'basic',
duration: { days: 3 },
buttonText: '3 day'
},
},
defaultView: function(){
if ($(window).width() <= 481){
return 'basicThreeDay';
} else {
return 'basicWeek';
}
}(),//you need to call the function
titleFormat: {
week: 'MMMM YYYY'
},
columnFormat: {
week: 'dddd M/D',
day: 'ddd M/D'
}
});