본문으로 건너뛰기

스케일 및 이벤트 박스 크기 조정 (v6.0)

이 문서는 dhtmlxScheduler 6.0 또는 이전 버전을 대상으로 합니다. dhtmlxScheduler 7.0+를 사용하는 경우 자세한 내용은 여기를 참조하십시오.

이 문서에서는 4가지 문제를 해결하는 예제를 통해 스케일의 크기와 이벤트 박스의 크기를 살펴보려 합니다:

Problem 1: 1시간 미만으로 지속되는 이벤트가 스케줄러에서 1시간 이벤트와 동일하게 보입니다. 짧은 이벤트가 스케일에 맞게 보이길 원합니다.

Problem 2: 1시간 미만이며 서로 다른 시간에 발생하지만 한 시간 이내에 겹치는 이벤트가 있습니다. 이러한 짧은 이벤트가 겹치지 않길 원합니다.

Problem 3: 스케일 단위 높이를 변경하고 그에 따라 줄무늬 배경도 바뀌길 원합니다.

Problem 4: 기본 스케일 간격은 1시간입니다. 이를 변경해 예를 들어 30분으로 만들고 싶습니다.

짧은 이벤트를 스케일에 맞추는 방법​

먼저 이벤트 박스의 기본 동작을 살펴보겠습니다:

  • 기본 스케일 단위 높이는 44px(또는 시 높이)입니다.
  • 이벤트 박스의 최소 높이는 44px입니다.
  • 1시간 미만으로 지속되는 이벤트는 44px의 크기를 차지합니다. 따라서 15분과 1시간 이벤트는 스케줄러에서 같은 모양으로 보일 것입니다.
  • 1시간 이상 지속되는 이벤트는 측면 스케일에 따라 높이가 결정됩니다(가정: 1시간은 44px에 해당합니다 — 예: 90분 이벤트의 높이는 63px가 됩니다).

예를 들어 30분 이벤트를 스케일에 맞추려면 두 가지 해결책이 있습니다:

  • 스케일 단위의 높이를 늘리는 방법
  • 이벤트 박스를 사용자 정의하는 방법

30-minute_custom_event.png

해결책 1. 스케일 단위의 높이 변경​

스케일 단위의 높이를 변경하려면 hour_size_px 설정 옵션을 사용해야 합니다.

예를 들어 단위를 두 배로 늘리려면 다음과 같이 설정합니다:

scheduler.config.hour_size_px = 88;

scheduler.init(...);

이제 스케일 단위의 높이가 88 px이므로 30분 이벤트가 44px를 차지하더라도 30분 높이에 맞춰 표시됩니다.

Y축 간격 변경

해결책 2. 이벤트 박스를 커스터마이즈하기​

이벤트 박스의 표시를 커스터마이즈하려면 renderEvent 메서드를 사용해 사용자 정의 템플릿을 설정할 수 있습니다.

scheduler.renderEvent = function(container, ev) {
//your customizing code
}

관련 챕터의 자세한 내용은 - Custom Event's Box에서 확인하십시오.

Custom event box

짧은 이벤트가 겹치지 않게 하기​

짧은 이벤트를 서로 구분되게 표시하고 겹칠 가능성을 없애려면 separate_short_events 옵션을 true로 설정해야 합니다:

scheduler.config.separate_short_events = true;

overlapping.png

설정된 스케일에 따라 배경을 변경하는 방법​

스케줄러의 배경은 단순 이미지로 설정됩니다. 배경 이미지를 변경하려면 관련 CSS 클래스를 재정의해야 하는데, 이 클래스는 .dhx_scale_holder 입니다:

<style>
.dhx_scale_holder {
background-image: url("imgs/myNewImage.png");
}
</style>
scheduler.init(...);

changing_background.png

스케일 간격 변경 방법​

기본 스케일 간격을 변경하려면 hour_scale 템플릿을 재작성해야 합니다. 간격을 30분으로 맞추려면 아래와 같이 템플릿을 재작성할 수 있습니다:

const format = scheduler.date.date_to_str("%H:%i");
const step = 30;

scheduler.templates.hour_scale = function(date){
let html="";
for (let i = 0; i < 60/step; i++){
html += "<div style='height:22px;line-height:22px;'>" + format(date) + "</div>";
date = scheduler.date.add(date,step,"minute");
}
return html;
}

scale_spacing.png

관련 샘플: 맞춤 Y축

Need help?
Got a question about the documentation? Reach out to our technical support team for help and guidance. For custom component solutions, visit the Services page.