[javascript] Reveal.js 반응형 디자인 적용하기
Reveal.js는 강력한 프레젠테이션 프레임워크로 알려져 있습니다. 하지만 기본적으로는 고정된 크기의 슬라이드를 제공하므로, 반응형 디자인을 적용하려면 몇 가지 추가적인 작업을 해야 합니다.
1. CSS 수정
먼저, Reveal.js의 CSS 파일을 수정하여 반응형 디자인을 적용합니다.
.reveal .slides {
display: flex;
flex-direction: column;
}
.reveal .slides>section {
width: 100%;
height: 100%;
}
위의 CSS는 슬라이드 컨테이너와 각 섹션을 일렬로 배치하도록 설정합니다.
2. JavaScript 수정
다음으로, Reveal.js의 JavaScript 파일을 수정하여 반응형 동작을 추가합니다.
Reveal.addEventListener('slidechanged', function(event) {
var currentSlide = event.currentSlide;
var slideWidth = currentSlide.offsetWidth;
var slideHeight = currentSlide.offsetHeight;
var scaleRatio = Math.min(window.innerWidth / slideWidth, window.innerHeight / slideHeight);
currentSlide.style.transform = 'scale(' + scaleRatio + ')';
});
위의 JavaScript는 슬라이드가 변경될 때마다 현재 슬라이드의 크기를 측정하고, 현재 창의 크기에 맞게 슬라이드를 확대/축소합니다.
3. 반응형 이미지
Reveal.js에서 이미지를 사용하는 경우, 반응형 이미지를 사용하면 좋습니다.
<img src="image.jpg" srcset="image.jpg 1x, image@2x.jpg 2x" alt="Image">
위의 코드는 두 가지 버전의 이미지를 제공하여 디바이스의 해상도에 맞게 이미지를 로드합니다.
4. 뷰포트 설정
마지막으로, HTML 파일의 뷰포트 설정을 수정하여 반응형 디자인을 지원합니다.
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
위의 코드는 뷰포트를 휴대폰 화면에 맞춰 설정합니다.
이제 Reveal.js에 반응형 디자인이 적용되었습니다. 모바일 장치에서 프레젠테이션을 할 때에도 원활한 화면 전환과 이미지 표시를 경험할 수 있습니다.