如何在fullcalendar中自动将光标滚动到当前月份的当前日期

时间:2018-05-21 13:25:41

标签: javascript jquery

当我使用我为我的项目制作的fullcalendar(jQuery插件)页面时,我需要页面自动滚动到当前日期。为此,我尝试使用fullcalendar的viewRender: function(currentView) { //console.log('view Render'); var scrollTime = moment().format("HH:mm:ss"); $('#calendar').fullCalendar({ now: '2018-05-21', scrollTime: scrollTime }) // $('#calendar').fullCalendar('refetchEvents' ) $('#calendar').fullCalendar('gotoDate', '2018-05-21'); } 功能,但它无法正常工作:

{{1}}

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

fullCalendar scrollTime doc:

  

确定滚动窗格最初滚动的前进距离。

     

持续时间,默认:' 06:00:00' (上午06点)

而你实际上并没有给时间。试试:

var scrollTime = moment('12:00:00').format("HH:mm:ss");

fullCalendar接受Moment作为第二个参数,您将其作为字符串给出,但未格式化。 Doc说它接受了Moment构造函数接受的任何内容,所以它应该是正确的,但你可以更具体地给出格式。

你可以尝试:

$('#calendar').fullCalendar('gotoDate', moment('2018-05-21').format("YYYY-MM-DD"));   

scrollTime用于滚动到一天中的某个时间。如果您打算滚动特定日期(p.e因为日历在屏幕上没有显示完整),我不知道是否还有其他日期。实际上有它的行为。在其他情况下,您可以使用滚动动画

$('html, body').animate({
    scrollTop: ($('#element').offset().top)
},500);

此外,fullcalendar还为我们提供了管理月份和年度变化的功能。 例如下个月(Next doc):

$('#my-next-button').click(function() {
  $('#calendar').fullCalendar('next');
});

在某些情况下,我们可以附加到元素并检测用户是否完全向下滚动该元素,然后更改月份:(我们需要知道必须滚动的元素或附加到满足我们所需行为的元素)

jQuery(function($) {
    $('#element-with-scroll').on('scroll', function() {
        if($(this).scrollTop() + $(this).innerHeight() >= $(this)[0].scrollHeight) {
             $('#calendar').fullCalendar('next');
        }
    })
});

让我们知道它是如何进步的。