마지막 문단의 opacity 0으로 초기화 관련
안녕하세요 친절한 강의 너무 잘보고있습니다!
다름이 아니라 마지막 문단의 opacity 애니메이션에서
스크롤을 올렸을때 시작값(0)으로 초기화가 되질 않아서 질문드립니다 ㅠㅠ 제가 확인한바로는 scrollRatio가 start시점보다 작아지지 않아서 그러는것같은데.. 이부분 확인해주실수있을까요?...
코드는 이곳에 477라인부터 있습니다! 감사합니당
답변 1
4
스크롤 속도가 너무 빠르면 스크롤값 자체가 딱 떨어지게 인식이 안되어 발생하는 문제인데요,
마지막 문단은 scrollRatio 자체가 동적으로 세팅되어 따로 체크가 안되고 있었네요^^;
지금 살펴보니 이건 제가 만든 원래 소스에서도 디자인에 따라서는 발생할 수 있는 문제같아서, 코드를 보완해야 할 것 같습니다(감사드려요!).
많은 처리가 필요한 것은 아니고요, 말씀해주신 부분의 if문에 else를 추가해서, 해당 범위를 벗어났을 경우에는 안전하게 opacity 처음값으로 세팅되도록 해주시면 됩니다.
if (scrollRatio > values.canvas_scale[2].end && values.canvas_scale[2].end > 0) { // 두 번째 이미지(블렌딩 이미지)의 스케일 축소가 완료되면 && 바로 직전의 애니메이션이 실행후 end값이 들어오면 (블렌딩이 완료되어야 values.canvas_scale[2].end 값이 설정됨 - 바로 위 코드)
objs.canvas.classList.remove('sticky');
objs.canvas.style.marginTop = `${scrollHeight * 0.4}px`;
values.canvasCaption_opacity[2].start = values.canvas_scale[2].end;
values.canvasCaption_opacity[2].end = values.canvasCaption_opacity[2].start + 0.1;
objs.canvasCaption.style.opacity = calcValues(values.canvasCaption_opacity, currentYOffset);
console.log('scrollRatio : ' + scrollRatio);
console.log('canvasCaption_opacity startz : ' + values.canvasCaption_opacity[2].start);
// values.canvasCaption_translateY[2].start = values.canvasCaption_opacity[2].start;
// values.canvasCaption_translateY[2].end = values.canvasCaption_opacity[2].end;
// objs.canvasCaption.style.transform = `translateY(${calcValues(values.canvasCaption_translateY, currentYOffset)}%)`;
} else {
objs.canvasCaption.style.opacity = values.canvasCaption_opacity[0];
}
위 코드에서 아래 else 부분이 추가된 부분입니다.
else {
objs.canvasCaption.style.opacity = values.canvasCaption_opacity[0];
}
참고로, calcValues 함수에서는
}else if(currentYOffset < partScrollStart){
rv = values[0];
}else if(currentYOffset > partScrollStart){
rv = values[1];
}
이 부분이 기본적으로 해당 처리를 하고 있는데요,
문제가 생겼던 부분은 scrollRatio 자체를 해당 부분에서 동적으로 세팅하고 있기 때문에 따로 처리가 필요했습니다.
이미지 배경 문의
0
67
1
[크로스브라우징] safari에서 동영상 영역 미노출
0
106
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
679
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
431
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





