inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

특정 타이밍 스크롤 애니메이션 기능 추가

주제에 좀 벗어난 질문 같지만 답답해서 문의 좀 드립니다~^^;

291

paintosm

작성한 질문수 8

0

자바스크립트를 잘 몰라 문의 드려봅니다!

playAnimation() 함수안의

calcValues(values.messageA_opacity,currentYOffset);

라인의 currentYOffset는 이렇게 값을 넣어 calcValues()에 넘기는데요.

 calcValues() 함수안의

 let scrollRatio = currentYOffset / sceneInfo[currentScene].scrollHeight;

 currentScene은 보내지도 않았는데 어디서 어떻게 값을 받아서 사용할수있는건가요?

    function calcValues(values,currentYOffset){
            let rv;
            //현재 씬 (스크롤섹션)에서 스크롤된 범위를 구하기
            //현 재씬에서 스크롤된 값 / 
            let scrollRatio = currentYOffset / sceneInfo[currentScene].scrollHeight;
/////////////////////////////////////////////////////////////////////////////////////////////////
            console.log('currentYOffset: '+currentYOffset);//현재 씬에서 스크롤된 높이
////////////////////////////////////////////////////////////////////////////////////////////////
        }
        
    function playAnimation(){
            const objs = sceneInfo[currentScene].objs;
            const values = sceneInfo[currentScene].values;
            const currentYOffset = yOffset-prevScrollHeight;//현재 씬에서 스크롤된 높이=전체 씬에서 스크롤된 높이-이전 섹션의 높이의 합
            //console.log('currentYOffset: '+currentYOffset);//현재 씬에서 스크롤된 높이
            //console.log('yOffset: '+yOffset);//전체 씬에서 스크롤된 높이
            //console.log('prevScrollHeight: '+prevScrollHeight);//이전 섹션의 높이
            switch (currentScene){
                case 0:
                    //console.log('0 play');
                    let mesageA_opacity_0 = values.messageA_opacity[0];
                    let mesageA_opacity_1 = values.messageA_opacity[1];
                    //console.log("currentYOffset: "+currentYOffset);
/////////////////////////////////////////////////////////////////////////////////////////
                    calcValues(values.messageA_opacity,currentYOffset);
/////////////////////////////////////////////////////////////////////////////////////////                    
                    break;
                    
                case 1:
                    calcValues(values.messageA_opacity,currentYOffset);
                    //console.log(currentScene, currentYOffset);
                    break;
                    
                case 2:
                    console.log(currentScene, currentYOffset);
                    break;
                    
                case 3:
                    console.log(currentScene, currentYOffset);
                    break;
                    
            }
            
        }

인터랙티브-웹 javascript 웹 디자인 svg HTML/CSS 클론코딩

답변 2

1

닥부

main.js 의 가장 상단(전역) 에  다음과 같이 선언되었습니다.

5번째 줄이요

ctrl + f 로 currentScene 검색해서 찾으셔두 되구요

let currentScene = 0// 현재 활성화된(눈 앞에 보고있는) 씬(scroll-section)

0

1분코딩

불멸의너구리좌님이 잘 설명해 주셨네요~~ 감사합니다^^
함수 밖에서 선언된 변수는 함수 내부에서 사용이 가능하기때문에, 이런 식의 코딩이 가능합니다.

이미지 배경 문의

0

67

1

[크로스브라우징] safari에서 동영상 영역 미노출

0

107

1

항상 궁금했는데 크림슨 컬러 선택하셨을때 활용했던 사이트 좀 알려주세요~

0

109

2

vue강의는안하시나요?!

0

101

1

스크롤 속도에 따른 messageA_opacity_out

0

115

1

drawImage(objs.videoImages[sequence], 0, 0); error

0

89

1

선생님 캔버스 width 크기는 이미지 크기에맞게 해줘야하나요?

0

127

0

선생님 안녕하세요. 혹시 메인개발(?)분야가 뭔지 궁금합니다.

0

206

1

React에서 load 상태를 어떻게 감지할 수 있을까요?

0

681

1

[섹션7-3: 버그수정 2] tempYOffset 오류

0

195

1

스크롤할 때 캔버스로 하신 이유가 있으신가요? 그냥 성능 떄문에 캔버스로 하신건가요?

0

313

2

게속 오류떠서 글 작성해봐요....

0

506

2

Vanilla JavaScript로 SPA 만드는 자료 혹은 선택 기준을 추천해주실 수 있으신가요?

1

488

1

특정 타이밍 스크롤 애니메이션 적용하기 섹션 수강중입니다.

0

455

2

[#svg, #이미지프레임과 텍스트 싱크] 스크롤 값에 움직이는 svg path, 이미지프레임과 텍스트 싱크 맞추는 것, 2가지 질문이 있습니다.

0

451

2

페이지가 처음 로딩 되었을 때 애니메이션 처리가 되지 않는 느낌입니다

0

432

1

섹션2 번째, opacity=0 되지 않고 잔상이 남습니다.

0

533

1

원래 쿼리셀렉터에서는 띄워쓰기 하면안되나요?

0

593

2

라이브러리 질문

1

412

2

translateY대신 애플에서 사용한 것 처럼 matrix로 scale의 크기를 주려고 하는데

0

409

1

[스크롤 높이 세팅] scrollHeight값이 3990아닌 4645로만 나오는데 뭐가 문제일까요? ㅠㅠ

0

598

2

scrollLoop 함수 질문

0

476

2

도메인 웹호스팅시 이미지가 안 뜨는데 누가 좀 알려주세요ㅠㅜ

0

1235

2

load 이벤트시 첫 비디오 이미지가 뜨네요.

0

506

2