티스토리 뷰

HMLT&CSS&JS/플러그인

[Calenda]

turfrain 2018. 12. 12. 16:56

# fullcalendar 

- 기본 사용방법

<script src='https://cdn.jsdelivr.net/npm/fullcalendar@6.1.19/index.global.min.js'></script>
<div id='calendar'></div>
<script>

document.addEventListener('DOMContentLoaded', function() {
  var calendarEl = document.getElementById('calendar');
  var calendar = new FullCalendar.Calendar(calendarEl, {
    initialView: 'dayGridMonth',
    locale: 'ko',                                     // 언어를 한국어로 설정
    headerToolbar: {
      start: 'dayGridMonth,timeGridWeek,dayGridDay', // headerToolbar에 버튼 추가
      center: 'title',
      end: 'today prev,next'                         // 스페이스-버튼간격띄움 ,-붙여서 생성
    },
    buttonText: {
      today: '오늘', // '오늘' 버튼 이름 변경
      month: '월별',
      week: '주간',
      day: '일간'
    },
    /* 일정등록 */
    selectable: true, // 드래그하여 날짜를 선택할 수 있도록 설정
    select: function(arg) {
      var title = prompt('일정 제목을 입력하세요:');
      if (title) {
        calendar.addEvent({
          title: title,
          start: arg.start,
          end: arg.end,
          allDay: arg.allDay
        });
        // DB에 저장하는 로직 추가
        // 예: axios.post('/api/schedules', { title: title, start: arg.start, end: arg.end });
      }
      calendar.unselect(); // 선택된 영역 해제
    },
    /* 일정보기 */
    eventClick: function(arg) {
      // arg.event는 클릭된 이벤트 객체입니다.
      var event = arg.event;
      var title = event.title;
      var start = event.start;
      var end = event.end;
      var description = event.extendedProps.description || '상세 내용 없음';  // 커스텀속성

      // 사용자에게 보여줄 메시지 구성
      var PlanMessage = `
        제목: ${title}\n
        시작: ${start ? start.toLocaleString() : '날짜 미정'}\n
        종료: ${end ? end.toLocaleString() : '미정'}\n
        설명: ${description}      
      `;
      alert(PlanMessage);
    },
    events: [
      {
        title: '회의',
        start: '2025-09-15T10:00:00',
        end: '2025-09-15T12:00:00',
        message: '다음 분기 목표에 대해 논의합니다.' // 커스텀속성
      },
      {
        title: '프로젝트 마감',
        start: '2025-09-20',
        message: '다음 분기 목표에 대해 논의합니다.' 
      },
      {
        title: '점심 약속',
        start: '2025-09-22T13:00:00',
        message: '다음 분기 목표에 대해 논의합니다.' 
      }
    ]
  });
  calendar.render();
});

</script>

 

 


# 상단 옵션 

기본 상단 옵션
initialView: 'dayGridMonth',

 

start 앞쪽, center 중간, end 우측
headerToolbar: {
  start: 'dayGridMonth,timeGridWeek,dayGridDay', // headerToolbar에 버튼 추가
  center: 'title',
  end: 'today prev,next'                                             // 스페이스-버튼간격띄움 ,-붙여서 생성
},
locale: 'ko',                                     // 언어를 한국어로 설정
buttonText: {                                   // 버튼 이름 변경
  today: '오늘'
  month: '월별',
  week: '주간',
  day: '일간'
},

 

 


# 입력 옵션 

  드래그해서선택후, 일정 등록
selectable: true, // 드래그하여 날짜를 선택할 수 있도록 설정
select: function(arg) {
  var title = prompt('일정 제목을 입력하세요:');
  if (title) {
    calendar.addEvent({
      title: title,
      start: arg.start,
      end: arg.end,
      allDay: arg.allDay
    });
    // DB에 저장하는 로직 추가
    // 예: axios.post('/api/schedules', { title: title, start: arg.start, end: arg.end });
  }
  calendar.unselect(); // 선택된 영역 해제
},

 


# 상세보기 옵션 

  켈린더에서 일정 클릭 이벤트
eventClick: function(arg) {
  // arg.event는 클릭된 이벤트 객체입니다.
  var event = arg.event;
  var title = event.title;
  var start = event.start;
  var end = event.end;
  var description = event.extendedProps.description || '상세 내용 없음';    // 커스텀 속성
 
  // 사용자에게 보여줄 메시지 구성
  var PlanMessage = `
    제목: ${title}\n
    시작: ${start ? start.toLocaleString() : '날짜 미정'}\n
    종료: ${end ? end.toLocaleString() : '미정'}\n
    설명: ${description}
  `;

  alert(PlanMessage);
},

 

 

 

 

 

 

 

 

# Big Calendar

 

 

'HMLT&CSS&JS > 플러그인' 카테고리의 다른 글

[select2] 플러그인  (0) 2022.08.11
map API  (0) 2020.04.02
[custom_scrollbar] AIP 커스텀 스크롤바(scrollbar)  (0) 2015.10.30
[그래프 플러그인] chart  (0) 2015.09.04
봐야할 플러그인  (0) 2014.03.17
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday