canvas 캔버스 가 fillRect()를 사용 할 때 두 배의 효과 가 나타 나 는 문 제 를 해결 합 니 다.

canvas 의 너비 와 높이 를 설정 할 때 내장 css 만 유효 하고 외부 css 는 늘 어 나 는 상황 이 발생 합 니 다.예 를 들 어:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <script>
    window.onload=function(){
        var canvas=document.getElementById('canvas').getContext('2d');
        canvas.fillRect(50,50,50,50);
    }
  </script>
  <style>
    body{
        background: #000;
    }
    #canvas{
        width: 300px;
        height: 400px;
        background:#fff;
    }
  </style>
</head>
<body>
  <canvas id="canvas">
    <span>   canvas  </span>
  </canvas>
</body>
</html> 
다음 과 같은 상황 을 보 여 줍 니 다.

이 효 과 는 우리 가 예상 한 것 과 달리 두 가지 수정 방안 이 있다.
(1)코드 js 에 폭 높 은 속성 을 설정 한 코드 설정 너비 와 높이 를 추가 합 니 다.

canvas.setAttribute("height",canvas.clientHeight);
canvas.setAttribute("width",canvas.clientWidth);
(2)외부 css 에 넓 은 속성 을 설정 한 코드 를 제거 하고 canvas 태그 에 너비 와 높이 속성 을 직접 추가 합 니 다.

<canvas id="canvas" width="300" height="400" >
    <span>   canvas  </span>
</canvas>
마지막 표시 효 과 는 다음 과 같 습 니 다.

canvas 캔버스 가 fillRect()를 사용 할 때 고도 로 두 배의 효과 가 나타 나 는 문 제 를 해결 하 는 것 은 바로 편집장 이 여러분 에 게 공유 하 는 모든 내용 입 니 다.참고 가 되 고 많은 응원 부 탁 드 리 겠 습 니 다.

좋은 웹페이지 즐겨찾기