인프런 커뮤니티 질문&답변

김찬기님의 프로필 이미지
김찬기

작성한 질문수

애플 웹사이트 인터랙션 클론!

스크롤 애니메이션 구현 4

씬이 바뀔 때 나오는 마이너스 스크롤값에 보완에 대한 질문입니다

작성

·

178

1

질문이 있습니다!  scene이 바뀌는 순간 스코롤 값이 마이너스 값이 나오는 오류를 막기 위해 true/false를 사용하셨는데, true/false가 왜 이런 오류를 막아주었는지 이해가 되지 않습니다!

답변 2

6

1분코딩님의 프로필 이미지
1분코딩
지식공유자

스크롤 이벤트가 발생할 때마다 계속 반복 실행되는  scrollLoop 함수에서 보면,
기본적으로는 enterNewScene = false; 를 설정하고
새로운 scene에 진입하는 순간(currentScene이 +1 되거나 -1되는 순간)에만  enterNewScene = true;로 설정되는 것을 알 수 있습니다.
스크롤에 따라 값을 반영하는 함수가 playAnimation이기 때문에
새로운 scene으로 진입한 순간에는 playAnimation를 실행하지 않으면 되는데요,
그렇기때문에 enterNewScene이 true일 때는 playAnimation을 실행하기 전에 return으로 함수 실행을 강제로 종료시켜서
playAnimation이 실행되지 않게 한 것입니다.

위 설명에서 이해 안되는 부분이 있다면 또 댓글 달아주세요! ^^

선생님 추가 질문입니다. 헷갈리게 뭐냐면,

scroll event가 계속 발생하는 동안

함수 scrollLoop가 실행이 되는데,

함수가 계속 실행이 된다면

if문의 조건 검사를 계속하는걸로 생각을 했습니다.

그렇다면

조건1.
(yOffset > prevScrollHeight + sceneInfo[currentScene].scrollHeight

조건2
(yOffset < prevScrollHeight + sceneInfo[currentScene].scrollHeight

둘 중 하나에는 무조건 걸려
enterNewScene이 계속 true가 되고 
결국 playAnimation함수가
계속 실행되지 않아야 하는 것이 아닌가하는 생각이 듭니다.

0

김찬기님의 프로필 이미지
김찬기
질문자

감사합니다!^^

김찬기님의 프로필 이미지
김찬기

작성한 질문수

질문하기