작성
·
247
0
calcValue 함수 질문입니다 ㅠ
calc 함수 역할을 '알맞은 비율까지 스크롤하였을때, 애니메이션에 사용되어야할 css값을 리턴한다' 로 이해하였습니다.
그런데 이해가 잘 안가는 부분이..rv 값을 계산식이 'rv = scrollRatio + 전체 범위 + 시작값' 으로 해주셨는데, 시작값을 더해야 하는 이유가 정확히 잘 이해가 가지 않습니다. ㅠ
다시 정리하자면
1. 강의에서 calcValue 함수 역할을 제대로 제가 이해했는지 궁금합니다.
2. rv값 계산식에서 시작값을 더한 이유가 궁금합니다.
입니다.
해당 코드:
function calcValues(values, currentYoffset) {
let rv;
let scrollRatio = currentYoffset / sceneInfo[currentScene].scrollHeight;
rv = scrollRatio * (values[1] - values[0]) + values[0];
return rv;
}
답변 1
0
calcValue 함수의 역할은 잘 이해하셨습니다^^
예를들어 values에 [ 100, 500 ] 이라는 값이 들어왔다고 가정해볼게요.
시작값이 100이고 최종값이 500이니까,
결국 scrollRatio가 0일 땐 rv가 100, 1일 땐 rv가 500이 되어야 하겠죠?
절반을 스크롤 했을 때, 즉 scrollRatio가 0.5일 땐 300이 되어야 할거고요.
scrollRatio가 0.5일 경우를 가지고 식을 다시 써볼게요~
rv = 0.5 * ( 500 - 100 ) + 100;
위 식에서 볼 수 있듯이,
시작값을 더해주지 않으면,
rv는 최종값과 시작값의 차인 400의 절반이 되겠죠~
그래서 시작값을 더해주어야 정확히 원하는 범위 안에서 비율대로 계산이 됩니다.
써놓고 보니 살짝 복잡해보이는데^^; 잘 모르시겠으면 다시 말씀해주세요!