레이어팝업에서 스크롤 이벤트를 발생 시켜야 할 경우 난 분명 스크롤이 있는 곳을 스크롤 하였는데 바디 부분도 함께 스크롤 되는 경우가 있다.
이런 버블링 현상을 제거해 주기 위해 보통,
이 이벤트를 걸어주는데 모바일에서 직접 볼 경우엔 바디 뿐만 아니라 레이어팝업에 있는 스크롤 기능조차 안된다.
또한 웹상에서 모바일 미리보기로 볼 경우에,
이런 에러가 콘솔에 찍히는걸 볼 수 있다.
preventDefault가 먹히지 않는 것인데,
이 경우에는 html과 body부분의 스크롤을 숨기고, 레이어 팝업에서 스크롤 되야하는 영역에 직접 스크롤 스타일을 넣어준다.
뿐만아니라, passive 현상을 제거하기위한 함수 선언 및 캡처를 false로 지정해야 한다.
아래를 참고하자.
물론 이벤트가 종료되는 시점에,
다시 스타일을 원상복구 시켜준다.
- 참고 -
https://tsuyoshiwada.github.io/sweet-scroll/
** 스크롤 플러그인 : iscroll
https://plugins.jquery.com/jscroll/
** iscroll api 잘 사용 하기 :
** passive : 스크롤 이벤트 버블 막는 현상
http://sculove.github.io/blog/2016/12/29/addEventListener-passive/
https://github.com/cubiq/iscroll/blob/master/demos/demoUtils.js
https://stackoverflow.com/questions/10444077/javascript-removeeventlistener-not-working
'DEVELOP' 카테고리의 다른 글
[javascript & jQuery] 스크롤 문제 해결하기 iScroll.js (0) | 2018.08.17 |
---|---|
[javascript & jQuery] 레이어 팝업 항상 정 가운데로 정렬 (0) | 2018.08.08 |
[javascript & jQuery] 팝업 쿠키 보이기 (0) | 2018.07.18 |
[javascript & jQuery] nput 박스 숫자 입력시 자동 포커스 이동 (2) | 2018.07.13 |
[CSS] 중앙정렬 (0) | 2018.07.10 |