2012-04-20 49 views
15

¿Cómo puedo deshabilitar el desplazamiento en la vista de agenda (modo semana, día) utilizando el complemento jQuery de FullCalendar? En el modo mes, todo está bien, pero cuando cambio al modo Semana/Día, aparece una barra de desplazamiento junto a la barra de desplazamiento de mi página principal.jQuery FullCalendar: ¿Deshabilita el desplazamiento en la vista de agenda?

+0

En mirando a través de la documentación, no veo ninguna manera de desactivar el desplazamiento en un cierto punto de vista. Tal vez proporcione un ejemplo de su código para ver si hay una forma de evitar esto en su HTML/CSS. – magzalez

+0

Acabo de ver que cuando uso BasicWeek y BasicDay en lugar de agendaWeek y agendaDay no hay barra de desplazamiento, así que supongo que la barra de desplazamiento es una "característica" para la agendaWeek en agendaDay Views. – cooxie

+1

no se puede mover sin hackear el archivo js. La altura del calendario se establece para que sea proporcional al ancho y el ancho se establece en función de la cantidad de ancho de div disponible. La proporción establece la altura y hace todo lo demás oculto y desplazable dentro del perímetro. No estoy seguro de dónde se establece en el js, pero ahí es donde tendrá que cambiarse. Ojalá pudiera ser más ayuda! –

Respuesta

20

Esto fue lo que hice en mi caso. El objetivo es cambiar dinámicamente la altura, por lo que aprovechó el evento viewDisplay de esa manera:

$('#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

esta es la mejor solución – TUNER88

+0

['viewDisplay'] (http://arshaw.com/fullcalendar/docs/removed/viewDisplay/) ha quedado en desuso –

+2

su ahora es viewRender - http: // arshaw.com/fullcalendar/docs2/display/viewRender/ –

3

Claro

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

Si su calendario tiene una barra de desplazamiento cuando no se desea que entonces usted tiene 3 opciones:

  1. que sea lo suficientemente grande que no tendrá un pergamino
  2. bar ¿
  3. reducir el tamaño del contenido para que se ajuste a su coundaries
  4. quitar la barra de desplazamiento y perder el acceso a la información no se muestra

Necesita ser más específico que "No me gustan las barras de desplazamiento"

+1

Gracias, la propiedad height elimina la barra de desplazamiento en la agendaDay y agendaWeek, pero ahora la vista de mes está recortada y parece horrible. – cooxie

0

Aquí es una versión actualizada y abreviada de respuesta @Deulis:

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

Como @Pierre de LESPINAY y @ Jens-André Koch ya mencionado, viewDisplay está privado en fullcalendar v2.0. Tenemos que usar viewRender en su lugar.

+1

Aún más corto: 'viewRender: function (view) {$ ('# calendar'). FullCalendar ('option', 'contentHeight', (view.name === 'month')? NaN: 99999); } ':-) – Ben

+0

@Ben Gracias, tienes razón :-) Edité mi respuesta – Alexxus

16

A partir de FullCalendar 2.1.0-beta1, puede establecer la opción { height: 'auto' } para deshabilitar las barras de desplazamiento en las vistas.

Aunque la entrada del registro de cambios para esta nueva funcionalidad se puede leer como "Para desactivar las barras de desplazamiento en la vista de mes", en realidad funciona para todas las vistas.

En la vista de mes, cuando la altura del calendario se desborda debido a demasiados eventos, aparecerán barras de desplazamiento verticales. Para desactivar este comportamiento, configure la opción de altura en 'auto'. - from v2.1.0-beta1 changelog

+0

funcionaba como un amuleto – workdreamer

+1

Si configuraba la altura como automático en FullCalendar 3.5.1, la vista del mes es perfecta, pero la altura de la agenda se corta y aparece una barra de desplazamiento vertical. – devuxer

3

sólo tiene que utilizar:

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

Ya incluido en una respuesta anterior (http://stackoverflow.com/a/25440372/219324). –

Cuestiones relacionadas