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

YINO님의 프로필 이미지
YINO

작성한 질문수

초보자도 만들 수 있는 스크롤 인터렉션. 1편 자바스크립트

섹션12 보너스 챕터에 관한 질문입니다!

작성

·

341

·

수정됨

0

섹션12에서 텍스트가 나타나고 사라지는 인터렉션에서 처음 텍스트를 스크롤 하지 않고 처음 텍스트만 보이다가 스크롤이 시작되고 나서 사라지고 다음텍스트가 보이게 하려면 어떻게 코드를 작성해야할까요?

답변 1

0

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

안녕하세요 :)

먼저 해당 질문은 수업과 연관이 없는 부분이고 굳이 왜 그렇게 구현을 해야하는지 의문이 드네요^^;

이 문제를 해결하려면 먼저 animation 속성의 특징을 살펴보고 직접 테스트를 진행해 봐야 할 것 같습니다.

(섹션 12는 animation 을 활용해 인터렉션을 구현했기 때문이죠?)

 

** 굳이 억지로 구현해야 한다면 아래와 같이 구현할 수 있을것 같지만 이 코드는 브라우저마다 호환성이 떨어질 수 있습니다. 이유는 브라우저마다 animation을 처리하는 부분이 다를 수 있기 때문입니다.

 

css수정 (코드 추가)

.fix_box .txt.active {

opacity: 1 !important;

}

 

html수정 (첫번째 엘리먼트에 클래스 추가)

<p class="txt active">안녕하세요</p>

스크립트 추가 (스크롤 이벤트 발생하면 active 클래스를 삭제해 animation 코드로 진행 하도록 만듬)

 

스크립트 추가 (스크롤 이벤트 발생하면 active 클래스를 삭제해 animation 코드로 진행 하도록 만듬)

arr.classList.remove('active');

 

** 다시한번 말하지만 위 코드는 여러 브라우저에서 다르게 동작할 수 있습니다(크롬에서 테스트 진행). 억지로 구현해야 한다면 css animation에 대해 살펴보고 조건문 등을 활용해 직접 테스트를 진행해 보길 추천드립니다. :)

 

** 만약 해당 문제를 꼭 해결해야 한다면 fake엘리먼트를 사용해 보는 것도 방법이 될 수 있겠습니다. :)

그럼 또 다른 궁금증이 생기면 문의주세요 :D

 

YINO님의 프로필 이미지
YINO
질문자

혼자 보면서 궁금증에 여쭤봤는데 친절히 답해주셔서 감사합니다 ㅎㅎ 잘 돼네요 ㅎㅎ

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

만약 해당 문제를 꼭 해결해야 한다면 fake엘리먼트를 사용해 보는 것도 방법이 될 수 있겠습니다. :)

YINO님의 프로필 이미지
YINO
질문자

fake 엘리먼트는 처음들어봤어요 ! 공부하면서 적용해보겠습니다 ㅎㅎ

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

Fake엘리먼트는 쉽게 말하면 “안녕하세요” 엘리먼트를 하나 더 추가해 가장 처음에만 보이도록 하고 스크롤시 fake엘리먼트를 안 보이도록 하는 겁니다 :) 그럼 스크롤시 원래 애니메이션은 그대로 동작하겠죠!

YINO님의 프로필 이미지
YINO
질문자

그러면 만약 첫번째 엘리먼트와 두번째 엘리먼트가 동일한 텍스트를 가지고 있고 fake엘리먼트를 사용했다면 사라지는순간의 타이밍과 스크롤될때의 시간이 안맞아서 순간적은로 보였다가 안보이는 시간의 텀?은 어떻게 되는건가요?

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

그 문제는 눈에 보일 정도로 나타나지 않을 거예요. important로 처리하는 코드는 Safari에서 동작 하지 않을 수 있습니다. :) 만약 궁금하신 부분에 문제가 있어서 완벽하게 처리해야 한다면 css애니메이션 코드를 직접 만들어야 할 수 있습니다. :)

YINO님의 프로필 이미지
YINO

작성한 질문수

질문하기