반응형
스마트폰의 스크린이 가로모드와 세로모드를 감지하여 필요에 따라 스타일시트나 스크립트를 다르게 사용하는 경우가 있다.
일단 css의 미디어쿼리로 처리하는 방법을 보면 아래와 같다.
#cover{
display:none;
}
@media only screen and (device-width: 768px) and (orientation: landscape) {
#cover{
display: block;
}
}
@media only screen and (min-device-width: 320px) and (orientation: landscape) {
#cover{
display: block;
}
}
위 처럼 쓰면 일단 작동이 제대로 되긴 된다. #cover가 사라져있다가 landscape 되는 순간 보여지게 되는 것이다.
그러나 문제는 입력칸에 포커스가 되었을 때다.
이 때 자판이 올라오게 되는데 자판이 올라오면서 화면의 가로 세로 비율이 바뀌게 되고 css에서는 가로모드라 감지하고 #cover 요소가 보이는 코드가 실행이 된다.
즉, 위 코드는 알고보면 가로 : 세로 비율을 갖고 처리하는 것 같다.
그래서 스크립트로 처리하기로 하여 아래와 같이 js 코드를 작성하였다.
$(window).on("orientationchange",function(){
if(window.orientation == 0) // Portrait
{
$('#cover').removeClass('show');
}
else // Landscape
{
$('#cover').addClass('show');
}
});
이렇게 하면 화면이 회전하지 않으면 #cover 요소에 show라는 클래스를 지우고, 회전하게 되면 show라는 클래스를 추가하는 스크립트이다.
스타일 시트는 #cover.show 라고 클래스를 가진 경우를 display:block 처리하면 된다.
작동 테스트 결과 아주 잘 작동되고 있다.
입력칸에 포커스가 가도 이상이 없다.
반응형
'PHP∵SCRIPT' 카테고리의 다른 글
PHP - 특정 태그 및 문자열 추출, 제거 (0) | 2023.12.17 |
---|---|
Var, Let, Const의 차이점은? (0) | 2023.12.12 |
자바스크립트 변수의 암호화 처리 방법 (0) | 2023.12.12 |
실행중 PHP 에러 메시지 레벨 조정하기 (0) | 2023.11.14 |
PHP 정규식을 활용한 태그 및 특정 문자열 제거 및 추출 방법 (0) | 2023.10.25 |
제이쿼리 기본 명령어 (0) | 2023.10.25 |
PHP 함수 정리 (0) | 2023.10.25 |
PHP 에러 메시지 레벨 조정하기 (0) | 2023.10.24 |
댓글