[HTML 디자인] 웹페이지 가로 모드/세로 모드 인식하기

웹페이지 가로 모드/세로 모드 인식하기

모바일 트래픽이 데스크탑을 앞지른 시대인 요즘은, 모바일이나 데스크탑 어디에서도 콘텐츠가 무리 없이 보이도록 대부분의 웹페이지들이 반응형으로 제작됩니다.

반응형 페이지를 만들 때 폰을 세로로 들고 있느냐 가로로 들고 있느냐를 판별하고, 그에 따라 레이아웃을 맞춰 주어야 하는 일이 꽤 자주 있어요. 데스크탑에서 브라우저 창의 폭과 높이 중 어느게 더 큰지를 판별하는 것으로 생각해도 됩니다. 같은 동작이에요~

세로 모드: Portrait(포트레이트) 모드
가로 모드: Landscape(랜드스케이프) 모드

판별은 CSS로도 가능하고 자바스크립트로도 가능한데요,
용도에 따라 적절한 걸 사용하면 되겠지요~

CSS를 이용한 방법

미디어 쿼리를 사용합니다.

@media (orientation: portrait) {
	/* Portrait 모드일 때 적용할 CSS */
}

@media (orientation: landscape) {
	/* Landscape 모드일 때 적용할 CSS */
}

자바스크립트를 이용한 방법

window.matchMedia(‘(orientation: portrait)’).matches 가 true면 Portrait 모드이고,

window.matchMedia(‘(orientation: landscape)’).matches 가 true면 Landscape 모드입니다.

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com


if (window.matchMedia('(orientation: portrait)').matches) {
	// Portrait 모드일 때 실행할 스크립트
	// 폭과 높이가 같으면 Portrait 모드로 인식돼요
} else {
	// Landscape 모드일 때 실행할 스크립트
}

아래↓처럼 브라우저 창 사이즈를 비교해서 판별할 수도 있어요.

if (window.innerWidth <= window.innerHeight) {
	// Portrait 모드일 때 실행할 스크립트
} else {
	// Landscape 모드일 때 실행할 스크립트
}

두 가지 방법의 실행 속도는 큰 차이가 없으니, 취향에 맞는 방법을 쓰세요~

창 사이즈가 바뀔 때마다 체크하고 싶다면, ‘resize’ 이벤트에 바인딩된 이벤트핸들러 함수에서 체크해주면 됩니다.
이렇게요↓

window.addEventListener('resize', function () {
	if (window.matchMedia('(orientation: portrait)').matches) {
		// Portrait 모드일 때 실행할 스크립트
		// 폭과 높이가 같으면 Portrait 모드로 인식돼요
	} else {
		// Landscape 모드일 때 실행할 스크립트
	}
});
thateasy-300x300.jpg

 

[출처] https://studiomeal.com/archives/1068

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
» [HTML 디자인] 웹페이지 가로 모드/세로 모드 인식하기 file 졸리운_곰 2022.02.14 23
466 [node.js 응용] PM2 - Node.js 프로세스 관리 도구 file 졸리운_곰 2021.12.10 18
465 [web개발] [jQuery] Select박스 option 값 선택하기 졸리운_곰 2021.10.20 43
464 [web개발][javascript][JQuery] textarea 값 설정및 값 가져오기 졸리운_곰 2021.10.19 193
463 [web개발][javascript] javascript - 주소의 파라미터값 변수로 받기 졸리운_곰 2021.10.19 14
462 [node.js][nodejs] [Linux] 리눅스 내 Node.js 및 NPM 최신 버전으로 유지하기 file 졸리운_곰 2021.10.11 19
461 [javascript][jquery] jQuery 이벤트 중복 방지 - jQuery에서 이벤트 핸들러를 제거하는 가장 좋은 방법은 무엇입니까? 졸리운_곰 2021.09.07 15
460 [javascript] How to append HTML code to a div using JavaScript ? file 졸리운_곰 2021.09.07 18
459 [javascript][jQuery] 제이쿼리(jQuery) 선택자 - #1 file 졸리운_곰 2021.09.07 10
458 [html] div안의 컴포넌트가 브라우저 줄이면 자동 개행되는 것 방지 졸리운_곰 2021.09.07 14
457 [HTML] HTML5 공간 분할 : 레이아웃(Layout) file 졸리운_곰 2021.09.06 35
456 [HTML5] HTML 공간 분할 file 졸리운_곰 2021.09.06 13
455 [웹제작][웹디자인] 시각화 대시보드 를 만들기 위해 고려해야 하는 4가지 file 졸리운_곰 2021.09.05 138
454 [Blazor][WASM] Awesome Blazor file 졸리운_곰 2021.08.15 16138
453 [Blazor][C# .net] Blazor와 C#으로 풀스택 웹 개발하기 file 졸리운_곰 2021.08.15 50
452 [docker] 도커 실행 중인 전체 컨테이너 중지, 일괄 삭제 (prune) file 졸리운_곰 2021.08.14 124
451 [java][spring boot][swagger] Spring boot로 Swagger 적용하기 file 졸리운_곰 2021.07.27 13
450 [Java][Spring boot][swagger] [SpringBoot] Swagger - API Docs 자동화 file 졸리운_곰 2021.07.27 10
449 [WASM][web assembly] 웹 어셈블리를 보다 쉽게 웹 어플리케이션에 적용하는 방법 file 졸리운_곰 2021.07.19 18
448 [node.js][typescript] 5분 안에 보는 TypeScript file 졸리운_곰 2021.07.03 13
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED