상황
앱에서 키패드를 이모티콘으로 변경했을때 height가 높아져 입력란이 가려짐 이슈
해결
1. window.visualViewport
window.resize를 해봤는데 앱이라 그런지 안됨.. 찾아보다가 window.visualViewport로 해결
간단하게 정리한 소스 !!
function resizeKeypad = () => {
requestAnimationFrame(() => {
//필요한 함수 실행
})
}
window.visualViewport.addEventListener("resize", resizeKeypad)
전체소스
$(function () {
let flag = false;
function handler(e) {
if (flag) return;
flag = true;
requestAnimationFrame(function () {
flag = false;
$(window).scrollTop(window.innerHeight); //스크롤 최하단으로 이동
})
}
//혹시라도 visualViewport 없을 경우 대비하여 방어코드 추가
if (window.visualViewport) {
//visualViewport 기준으로 resize가 일어나면 handler이벤트 실행
window.visualViewport.addEventListener("resize", handler);
}
})
2. 입력박스에 focus 될때마다 scroll 최하단으로 이동
$(document).on("focus", "input", function () {
setTimeout(function () {
window.scrollTo(0, window.innerHeight);
}, 0)
})
focus 될때마다 최하단으로 이동하는건데 아무래도 스크롤 내리다가 입력박스 클릭하면 최하단으로 이동하기도 하고 1번 소스가 더 깔끔하고 사이드이펙이 적어보여서 1번으로 해결.
반응형
'Issues > Mobile(Web&App)' 카테고리의 다른 글
[html & ios] 전화번호가 들어있는 span태그로 감싼 텍스트인데 전화가 되고 css가 이상할때 (0) | 2021.12.29 |
---|---|
[CSS& Mobile] 모바일 브라우저 주소창과 바텀시트 고정시키기 (0) | 2021.12.07 |
[APP & javascript] ios, Android 앱 마켓 이동하기(+ ios 앱스토어 이동 오류) (0) | 2021.12.03 |
[IOS & javascript] new Date() invalid date 오류! (0) | 2021.12.03 |