2012-04-20 15 views
15

Come posso disabilitare lo scorrimento nella vista Agenda (modalità settimana, giorno) utilizzando il plug-in jQuery FullCalendar? Nella modalità mese, tutto va bene, ma quando si passa alla modalità settimana/giorno c'è una barra di scorrimento accanto alla mia barra di scorrimento della pagina principale.jQuery FullCalendar: disabilita lo scorrimento nella vista Agenda?

+0

Guardando attraverso la documentazione, non vedo alcun modo per disattivare lo scorrimento in una certa visione. Forse fornisci un esempio del tuo codice per vedere se c'è un modo per prevenirlo nel tuo HTML/CSS. – magzalez

+0

Ho appena visto che quando uso basicWeek e basicDay invece di agendaWeek e agendaDay non esiste alcuna barra di scorrimento, quindi suppongo che la barra di scorrimento sia una 'funzione' per l'agenda. – cooxie

+1

non è possibile inserirlo senza aver hackerato il file js. L'altezza del calendario è impostata in modo proporzionale alla larghezza e la larghezza viene impostata in base alla quantità di larghezza div disponibile. La proporzione imposta l'altezza e rende tutto il resto nascosto e scorrevole all'interno del perimetro. Non sono sicuro di dove sia impostato nel js ma è qui che dovrà essere cambiato. Vorrei poter essere di più aiuto! –

risposta

20

Questo è stato quello che ho fatto nel mio caso. L'obiettivo è quello di cambiare dinamicamente l'altezza, quindi ho usato l'evento viewDisplay in questo modo:

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

questa è la soluzione migliore – TUNER88

+0

['viewDisplay'] (http://arshaw.com/fullcalendar/docs/removed/viewDisplay/) è stata deprecata –

+2

e ora viewRender - http: // arshaw.it/fullcalendar/docs2/display/viewRender/ –

3

Certo

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

Se il calendario ha una barra di scorrimento quando non si vuole che allora avete 3 opzioni:

  1. renderlo abbastanza grande che non avrà una pergamena bar
  2. ridurre il contenuto in modo che si adatti all'interno del vostro coundaries
  3. rimuovere la barra di scorrimento e perdere l'accesso alle informazioni non mostrato

Devi essere più specifico di "Non mi piacciono le barre di scorrimento"

+1

Grazie, la proprietà height rimuove effettivamente la barra di scorrimento nell'ordine del giornoDay e agendaWeek, ma ora la vista del mese è ritagliata e sembra impressionante. – cooxie

0

Ecco una versione aggiornata e abbreviata di @Deulis risposta:

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

Come @Pierre de LESPINAY e @ Jens-André Koch già menzionati, viewDisplay sono stati svuotati in fullcalendar v2.0. Dobbiamo invece usare viewRender.

+1

Ancora più breve: 'viewRender: function (view) {$ ('# calendar'). FullCalendar ('option', 'contentHeight', (view.name === 'month')? NaN: 99999); } ':-) – Ben

+0

@Ben Grazie, hai ragione :-) Ho modificato la mia risposta – Alexxus

16

A partire da FullCalendar 2.1.0-beta1, è possibile impostare l'opzione { height: 'auto' } per disabilitare le barre di scorrimento nelle viste.

Sebbene la voce di registro delle modifiche per questa nuova funzionalità possa essere letta come "Per disattivare le barre di scorrimento nella vista mese", in realtà funziona per tutte le viste.

Nella visualizzazione mese, quando l'altezza del calendario si espande a causa di troppi eventi, vengono visualizzate le barre di scorrimento verticali. Per disattivare questo comportamento, imposta l'opzione altezza su 'auto'. - from v2.1.0-beta1 changelog

+0

ha funzionato come un fascino – workdreamer

+1

Se ho impostato l'altezza sull'auto in FullCalendar 3.5.1, la vista del mese è perfetta, ma l'altezza dell'ordine del giorno viene interrotto e viene visualizzata una barra di scorrimento verticale. – devuxer

3

basta usare:

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

Già incluso in una risposta sopra (http://stackoverflow.com/a/25440372/219324). –

Problemi correlati