• 카테고리

    질문 & 답변
  • 세부 분야

    프론트엔드

  • 해결 여부

    미해결

혹시 canvas에 margin을 준경우

21.06.09 20:36 작성 조회수 228

0

canvas 위의 Retina 머그쪽 글과 간격이 너무 붙어버려서 

canvas에 margin : 20vh 0 을 주었었는데요.

해당 margin 때문에 sticky 클래스가 붙었을때 

자바스크립트로 top값을 - 해줘도 공간이남아버리는데.

어떻게해주어야할까요.

일단 임시로  canvas가 아니라 저 메세지가 담겨있는는 p태그에 margin 주는걸로 바꿔서 해결하긴했지만. 

canvas 자체에 margin이 있을때는 어떻게해야할지..

답변 1

답변을 작성해보세요.

0

일단 CSS에서 캔버스에 .sticky가 붙었을 때는 margin이 안생기도록
.image-blend-canvas.sticky {
    .....
    .....
    margin-top: 0 !important;
}

을 추가해 주시고요~ (나중에 스크립트로 margin이 들어가기 때문에, sticky가 붙었을 때는 무조건 margin-top: 0이 적용되도록 !important를 넣어주었습니다)

캔버스의 margin-top을 설정하는 스크립트 부분에도 추가한 마진을 같이 계산해주도록 수정하면 되겠네요~
20vh로 하셨으니 window.innerHeight * 0.2로 계산을 하면,

objs.canvas.style.marginTop = 0;
이 부분은
objs.canvas.style.marginTop = `${window.innerHeight * 0.2}px`;
로 수정해주시고

objs.canvas.style.marginTop = `${scrollHeight * 0.4}px`;
이 부분은
objs.canvas.style.marginTop = `${scrollHeight * 0.4 + window.innerHeight * 0.2}px`;
이렇게 수정해주시면 될 것 같습니다.