• 카테고리

    질문 & 답변
  • 세부 분야

    프론트엔드

  • 해결 여부

    미해결

calcValue 함수 질문입니다 ㅠ

20.05.28 23:57 작성 조회수 154

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의 절반이 되겠죠~
그래서 시작값을 더해주어야 정확히 원하는 범위 안에서 비율대로 계산이 됩니다.

써놓고 보니 살짝 복잡해보이는데^^; 잘 모르시겠으면 다시 말씀해주세요!