Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- useEffect()
- 항해99솔직후기 #항해99장점 #항해99단점 #부트캠프추천
- 소수점 올림내림
- React
- new Date()
- map()
- jsx반복문
- useState()
- parseInt()
- includes()
- repeat()
- reat if문
- toUpperCase()
- setDate
- substring()
- Math.floor()
- Math.sqrt()
- 차집합
- charAt()
- Eventlitener
- 교집합
- slice()
- filter()
- isNaN()
- sort()
- 3진수
- useRef()
- indexOf()
- Number()
- getday()
Archives
- Today
- Total
개발자로 전향중
이틀 고생한 IOS mobileWeb Scroll 본문
step1. 아이폰의 UI는 어쨌든 HTML을 벗어나지 않으므로 html,body에 min-height 값을 준다.
html,
body {
/* 배경 색상 지정 */
background-color: black;
/* 사파리 새로고침 막기 */
overflow-x: hidden;
/* overscroll-behavior: contain; */
min-height: calc(var(--vh, 1vh) * 100);
min-height: -webkit-fill-available;
}
step2. 상단 새로고침을 없애고 싶을때
나는 overscroll-behavior: contain을 하라고 하지만 나는 졸라게 안먹음..Apple 포럼에서 찾음! addEventListener으로 높이에 도달시 e.prevenDefault()을 먹임.
근데 나는 gsap로 스크롤을 주고 있는 상황이었는데 맨아래 닿으면 스크롤이 동작을 안함! 그래서 end + 2000을 고려하여 스크롤이 맨아래 즉 2000에 닿기 전에만 실행하도록 조건을 추가하였음 만약 그냥 새로고침만 없애고 싶다면 저 조건은 제외해도 될듯
useEffect(() => {
let Elem = sectionRef.current
let startY = 0
//터치가 맨위 일
Elem?.addEventListener(
'touchstart',
function (e: any) {
startY = e.changedTouches[0].pageY
},
false
)
Elem?.addEventListener(
'touchmove',
function (e: any) {
var currentY = e.changedTouches[0].pageY
if (sectionRef.current?.scrollTop! <= 0 && startY <= currentY) {
if (currentY < 2000) {
e.preventDefault()
return false
}
}
},
false
)
})
'Typescript' 카테고리의 다른 글
TpyeScript 어노테이션이란? (0) | 2023.03.14 |
---|---|
Mbti input radio로 선택지 주고싶을때 (0) | 2022.11.28 |
typescript redux toolkit 객체 타입 주기 (0) | 2022.11.04 |
TypeScript interface 사용법 (0) | 2022.09.01 |
Typescript 기본타입 (0) | 2022.08.24 |