안녕하세요~!!
모바일에서 레이어(모달) 팝업 띄웠을 때 레이어 안에서 스크롤이 안되는 경우가 많았습니다.
iScroll를 쓰면 아이폰에서 문제가 생기는 이슈가 있었습니다.
스크롤 하게 되면 body
쪽 전체 스크롤이 움직이고, 안쪽만 안되는 어려움이 많았다.
HTML:
<div id="wrap">
<a class="btn_layerpopup" href="#layerPopup">팝업 띄우기</a>
<div class="layer-popup" id="layerPopup">
<div class="header">
<span>제목</span>
<a class="btn_close_layer" href="#none">닫기</a>
</div>
<div class="layer-containers">
<div class="inner">
<div class="box">
test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />test<br />
</div>
</div>
</div>
</div>
</div>
레이어 팝업에서 header, body를 나누었고, body에 position:absolute
를 줬습니다.
CSS:
#wrap {
position: relative;
}
#layerPopup {
position: fixed;
top: 10px;
right: 10px;
bottom: 10px;
left: 10px;
z-index: 999;
margin: 0 auto;
display: none;
height: auto;
background-color: #fff;
border-radius: 5px;
}
#layerPopup.open {
display: block;
}
#layerPopup .header {
position: relative;
height: 50px;
line-height: 50px;
font-weight: bold;
text-align: center;
color: #fff;
background-color: #ff0000;
border-radius: 5px 5px 0 0;
}
#layerPopup .header .btn_close_layer {
position: absolute;
top: 5px;
right: 5px;
display: block;
}
#layerPopup .layer-containers {
position: absolute;
top: 50px;
right: 0;
bottom: 0;
left: 0;
}
#layerPopup .layer-containers .inner {
height: 100%;
background-color: yellow;
border-radius: 0 0 5px 5px;
}
#layerPopup .layer-containers .box {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
padding: 20px 10px;
overflow: hidden;
overflow-y: auto;
-webkit-overflow-scrolling: touch;
}
결과물:
See the Pen 모바일에서 레이어팝업안에서 스크롤 시키기 by buppagi (@buppagi) on CodePen.
답글 남기기