2012-04-20 2 views
15

Как отключить прокрутку в представлении «Повестка дня» (недельный, дневной режим) с помощью плагина FullCalendar jQuery? В режиме месяца все в порядке, но когда я переключаюсь в режим «Неделя/День», рядом с моей прокруткой на главной странице прокручивается панель прокрутки.jQuery FullCalendar: отключить прокрутку в режиме «Повестка дня»?

+0

Просматривая документацию, я не вижу какой-либо способ отключить прокрутку в определенном виде. Возможно, вы можете привести пример своего кода, чтобы узнать, есть ли способ предотвратить это в вашем HTML/CSS. – magzalez

+0

Я просто вижу, что, когда я использую basicWeek и basicDay вместо повестки дняWeek и AgendaDay, нет полосы прокрутки, поэтому я считаю, что полоса прокрутки является «функцией» для повестки дняWeek en AgendaDay Views. – cooxie

+1

вы не можете переписать его, не взломав файл js. Высота календаря устанавливается пропорционально ширине, а ширина устанавливается в зависимости от количества доступной ширины. Эта пропорция устанавливает высоту и делает все остальное скрытым и прокручиваемым по периметру. Я не уверен, где он установлен в js, но здесь его нужно будет изменить. Хотел бы я больше помочь! –

ответ

20

Это было то, что я сделал в моем случае. Цель состоит в том, чтобы динамически изменять высоту, так что я использовал это событие viewDisplay именно таким образом:

$('#calendar').fullCalendar({ 
    viewDisplay: function (view) { 
     var h; 
     if (view.name == "month") { 
      h = NaN; 
     } 
     else { 
      h = 2500; // high enough to avoid scrollbars 
     } 

     $('#calendar').fullCalendar('option', 'contentHeight', h); 
    } 
}); 
+1

это лучшее решение – TUNER88

+0

['viewDisplay'] (http://arshaw.com/fullcalendar/docs/removed/viewDisplay/) устарел –

+2

его теперь viewRender - http: // arshaw.com/fullcalendar/docs2/display/viewRender/ –

3

Конечно

$('#calendar').fullCalendar({ 
    height: 999999999 
}); 

Если календарь имеет полосу прокрутки, если вы не хотите, чтобы потом у вас есть 3 варианта:

  1. сделать его достаточно большим, что она не будет иметь свиток бар
  2. уменьшить содержание так, что она вписывается в ваши coundaries
  3. удалить скроллбар и потерять доступ к информации, не показан

Вы должны быть более конкретными, чем «Я не люблю прокрутки»

+1

Спасибо, свойство height действительно удаляет полосу прокрутки в повестке дняDay и AgendaWeek, но теперь вид месяца обрезается и выглядит ужасно. – cooxie

0

Вот обновленный и сокращенный вариант @Deulis ответа:

$("#calendar").fullCalendar({ 
    viewRender: function(view){ 
    $("#calendar").fullCalendar("option", "contentHeight", (view.name === "month")? NaN : 9999); 
    } 
}); 

Как @Pierre де LESPINAY и @ Jens-André Koch уже упоминали, viewDisplay лишен fullcalendar v2.0. Вместо этого мы должны использовать viewRender.

+1

Короче: 'viewRender: function (view) {$ ('# calendar'). FullCalendar ('option', 'contentHeight', (view.name === 'month')? NaN: 99999); } ':-) – Ben

+0

@Ben Спасибо, ты прав :-) Я отредактировал свой ответ – Alexxus

16

Начиная с FullCalendar 2.1.0-beta1, вы можете установить { height: 'auto' } вариант отключения полос прокрутки во взглядах.

Хотя запись изменений для этой новой функциональности может быть прочитана как «Чтобы отключить прокрутки в режиме месяца», она действительно работает для всех видов.

В представлении месяца, когда высота календаря переполняется из-за слишком большого количества событий, появятся вертикальные полосы прокрутки. Чтобы отключить это поведение, установите для параметра высоты значение «авто». - from v2.1.0-beta1 changelog

+0

работал как шарм – workdreamer

+1

Если я настроил высоту на авто в FullCalendar 3.5.1, представление месяца идеально, но высота повествования отключается и появляется вертикальная полоса прокрутки. – devuxer

3

просто использовать:

$('#calendar').fullCalendar({ 
    height: "auto" 
}); 
+0

Уже включен в ответ выше (http://stackoverflow.com/a/25440372/219324). –

Смежные вопросы