inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

캔버스를 창 사이즈에 맞추기

캔버스 width height 사이즈

700

96 Hannover

작성한 질문수 6

0

애플의 예> 

<canvas width="900" height="650" style="width: 900px; height:650px;">

애플 웹사이트나 캔버스를 사용하는 다른 사이트들을 "검사" 로 통해 보면 canvas element 자체에서 width height px 값이 변경되는것으로 보입니다. 

질문 :

강사님이 강좌에서 보여준것처럼  canvas 에 parent element 를 만들어서 그 height 값을 조정하는것과 canvas element 자체에서 사이즈 조정하는것, 

사용 용도에 따라 다르다고 하셨는데 굳이 차이점을 찾는다면 어떤것이 있나요?

이미지 로드 속도? 아니면 resize 시 오류 대응?.. 

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

답변 1

3

1분코딩


저희가 샘플로 잡았던
https://www.apple.com/kr/airpods-pro/
를 보시면, width와 height 자체를 바꾸지 않고 우리가 한 것 처럼 transform으로 조정하는걸 볼 수 있어요~
(transform matrix 저 부분이 위치와 스케일을 조정하는 부분입니다)
창 사이즈를 바꿔보아도 width와 height는 1458, 820으로 고정되어 있고요.
이 강의는 애플 클론이기때문에 애플이랑 같은 방식을 사용했습니다~

애플이나 우리 예제처럼 CSS transform을 이용할 경우는 canvas에 직접 하는 것과 부모요소에 하는 것은 별 차이가 없고요,
CSS transform을 이용하느냐 아니면 width height를 직접 바꾸느냐, 이 두가지가 차이점이 있다고 생각하시면 됩니다.

CSS transform을 이용하는 이유는 width와 height를 직접 바꾸는 것보다 성능상 더 유리하고, 계산할 것도 적기 때문이에요.
width height 자체를 바꾸면 캔버스 내부의 요소들 위치를 모두 다시 계산해주면서 다시 그려야 하거든요.

뭐가 더 좋다기보다, 상황별로 더 나은 방식이 있다고 생각하시면 됩니다.
이런 비주얼 이미지의 경우는 좌우가 잘려보여도 내부의 이미지와 텍스트만 중앙에 잘 보이면 되는거라 CSS를 이용한 것이고요,
게임처럼 모든 화면 자체가 전부다 보이는게 좋은 경우는 width와 height를 직접 조정하는 방식이 낫고요.

https://studiomeal-717af.firebaseapp.com/
이건 https://studiomeal.com 사이트의 예전 버전인데요,
요소요소의 위치가 동적이면서 게임처럼 동작하기때문에 CSS transform 조정 보다는
width height를 직접 바꾸는게 낫다고 판단해서 그렇게 작업했었답니다.

결론은, 두 방식 모두 각자 장점이 있는데
CSS transform을 쓰는 편이 성능상으로는 좀 더 낫다- 입니다.

이미지 배경 문의

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