inflearn logo
강의

講義

知識共有

3Dリーフレットの作成 - インタラクティブWebプロジェクト

선생님 질문있습니다 이 강의를 리액트환경에서 적용하고싶은데요,

294

wndtlr10248980

投稿した質問数 142

0

그럴경우 useEffect 안에서 함수 처리를 해줘야할까요? 예를들어 이런식으로?

useEffect(() => {
    const leaflet = document.querySelector('.leaflet');
    const pageElems = document.querySelectorAll('.page');
    let pageCount = 0;

    function getTarget(elemclassName) {
      while (!elem.classList.contains(className)) {
        elem = elem.parentNode;

        if (elem.nodeName === 'BODY') {
          elem = null;
          return;
        }
      }

      return elem;
    }

    function closeLeaflet() {
      pageCount = 0;
      document.body.classList.remove('leaflet-opened');
      // 펼쳐졌을때 맨 오른쪽 페이지 닫기
      pageElems[2].classList.remove('page-flipped');

      setTimeout(() => {
        // 이후 맨 왼쪽 페이지 닫기
        pageElems[0].classList.remove('page-flipped');
      }, 500);
    }

    leaflet.addEventListener('click', (e=> {
      let pageElem = getTarget(e.target'page');
      if (pageElem) {
        pageElem.classList.add('page-flipped');
        pageCount++;

        if (pageCount === 2) {
          document.body.classList.add('leaflet-opened');
        }
      }

      // let closeBtnElem = getTarget(e.target, 'close-btn');
      // if (closeBtnElem) {
      //   closeLeaflet();
      //   zoomOut();
      // }

      // let menuItemElem = getTarget(e.target, 'menu-item');
      // if (menuItemElem) {
      //   zoomIn(menuItemElem);
      // }

      // let backBtn = getTarget(e.target, 'back-btn');
      // if (backBtn) {
      //   zoomOut();
      // }
    });
 }, []);

HTML/CSS javascript 인터랙티브-웹

回答 1

2

studiomeal

이렇게 아예 통째로 넣기 보다는, 리액트 개발방식에 맞추어 부분부분을 컴포넌트화 해주시는게 좋습니다.
전체 구조 자체를 변경해야하는 부분이라 간단하게 설명하기가 어려운데, 언제 유튜브나 추가 강의를 통해서 리액트를 이용해서 인터랙션을 구현하는 것을 영상으로 한번 만들어 보겠습니다^^

0

wndtlr10248980

선생님 오랜만에 찾아뵈었습니다.
혹시 유튜브나 추가강의를 통해서 리액트를 통해 인터랙션을 구현하는 영상 올리신적이있으시다면 링크좀 부탁드려도될까요?ㅠㅠ

중요하진 않지만 설명하신부분에서 안된부분..

0

11

0

강의 듣는 순서가 어떻게 되나요?

0

28

1

안녕하세요, 강좌 5의 피그마 파일은 어디서 볼 수 있나요?

0

45

2

stopPropagation()에 대해서 질문 있습니다.

0

31

2

12.13) 하단 여백 스타일링 관련 질문 드립니다.

0

41

2

transform-style: preserve-3d; 를 추가하면

0

52

1

Babel의 사용법 아래 링크의 영상이 비공개 동영상이라고 뜹니다.

0

124

1

페이지 클래스리스트 제거 해줬을때

0

94

0

페이지를 클릭할 때 Uncaught TypeError: Cannot read properties of undefined (reading 'contains') 에러가 뜹니다.

0

1052

1

질문 있습니다ㅠ.ㅠ..

0

416

1

클릭 시 자꾸 page element만 인식됩니다.

0

243

1

가운데 페이지만 줌인이 됩니다

0

271

1

body에 perspective를 주면 갑자기 html과 body 높이가 0이 됩니다

0

407

1

줌인 상태일 때

0

273

1

이벤트 위임 방식 질문

0

232

1

이사람 누군지 아세요..?

3

421

1

질문있습니다.

0

218

1

선생님 질문잇습니다. ㅠ

0

273

1

줌인이 왜 안되는지를 모르겠어요..

1

274

1

질문이 있어요

1

250

1

질문 있습니다.

0

378

2

선생님 질문 있습니다!

1

272

2

쌤 화면 크기 줄엿을때 글자들 삐져나오는거는 어떻게 해결하죠?

0

399

2

소스코드 압축이 풀리지 않습니다.

0

350

4