Dla szerokości, zrobiliśmy kalendarz elastyczny, aby dostosować wraz z elastycznym projektowaniu i to działało bardzo dobrze na większych wyświetlaczach:
#calendar {
width: 100%;
margin: 0 auto;
}
dla każdej innej personalizacji (zmiana wysokości lub widok domyślny), należy użyć wbudowane zdarzenie windowResize
dla FullCalendar. Wadą akceptowanej odpowiedzi jest to, że funkcja będzie działać PODCZAS zmiany rozmiaru okna, dla każdej zmiany piksela. Odwrotnie, zdarzenie windowResize
wystrzeliło PO zakończeniu zmiany rozmiaru.
Problem z responsywnym kalendarzem polega na tym, że wciąż jesteś na łasce stołu - straszne miejsce na małym ekranie mobilnym.
Dla naszego projektu wybieramy wymuszenie widoku dnia, jeśli użytkownik był na ekranie o wielkości mniejszej niż 769 pikseli. Możesz zobaczyć naszą metodę w tym przykładzie. Jeśli to nie zadziała, przynajmniej wskaże ci, w jaki sposób wdrożyć rozwiązanie.
var ww,view;
$(function(){
$('#calendar').fullCalendar({
windowResize: function(view) {
ww = getWindowWidth();
view = getView();
var currentView = $('#calendar').fullCalendar('getView');
if(view != currentView){
$('#calendar').fullCalendar('changeView',view);
}
if(ww <= 768){
$('.fc-header-right .fc-button').hide();
}else{
$('.fc-header-right .fc-button').show();
}
}
});
});
Oto funkcje mowa powyżej:
function getWindowWidth(){
return $(window).width();
}
function getView(){
return (ww <= 768) ? 'basicDay' : 'month';
}
Idealny. Dziękuję za pomoc! p.s. Uważam, że przegapiłeś dodatkowe "});" .. ale wszystko dobrze! – captainrad