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
- isNaN()
- parseInt()
- slice()
- 교집합
- Math.floor()
- useEffect()
- charAt()
- indexOf()
- setDate
- reat if문
- new Date()
- useRef()
- Eventlitener
- 3진수
- jsx반복문
- map()
- repeat()
- React
- Math.sqrt()
- 항해99솔직후기 #항해99장점 #항해99단점 #부트캠프추천
- includes()
- getday()
- substring()
- 소수점 올림내림
- toUpperCase()
- 차집합
- useState()
- filter()
- sort()
- Number()
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' 카테고리의 다른 글
| 매개변수의 초과 허용 및 콜백 함수의 호환성 (1) | 2024.07.12 |
|---|---|
| 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 |