Html상 Canvas 에 박스를 그려주는 자바스크립트
- 테두리가 있거나 없거나
- 1px 짜리 테두리도 깔끔하게
- 여러 박스 겹침 가능
- 채우기 색상과 테두리 색상에 투명도 적용 가능
캔버스 id 가 canvas 라고 가정했을때...
function drawBox2canvas(ctx, x, y, w, h, color, borW, borColor) {
if (!borW) { borW = 0; }
ctx.fillStyle = color;
ctx.fillRect(x+(borW), y+(borW), w-(borW*2), h-(borW*2));
if (borW) {
ctx.lineWidth = borW;
ctx.strokeStyle = borColor;
ctx.strokeRect(x+(borW/2), y+(borW/2), w - borW, h - borW);
}
}
var canvas = document.getElementById("canvas");
var context = canvas.getContext("2d");
drawBox2canvas(context, 0, 0, 100, 100, "rgba(125,0,0,0.5)", 10, "rgba(125,0,0,0.7)");
drawBox2canvas(context, 10, 70, 80, 100, "rgba(0,0,125,0.5)");
drawBox2canvas(context, 110, 20, 100, 100, "#cccccc", 9, "orange");
drawBox2canvas(context, 50, 50, 100, 100, "rgba(0,125,0,0.5)", 1, "black");
사용법: drawBox2canvas() 에 아래 변수들을 전달하며 실행하기
(context, posX, posY, width, height, fill-color, border-width, border-color)
변수 설명: (캔버스의 컨텍스트, x좌표, y좌표, 넓이, 높이, 채우기색상, 테두리크기, 테두리색상)
참고: 박스의 넓이/높이는 테두리를 포함함 (css 에 Box-sizing: border-box 를 적용했을때와 같이)
아래는 예시: (Result 탭을 눌러보자)
https://jsfiddle.net/alikong/dor027Ly/
'웹 코딩 > JS + jQuery' 카테고리의 다른 글
jQuery - selectors / 선택자 목록 (0) | 2020.08.06 |
---|---|
나타났다 사라지는 토스트 메시지 - toast (0) | 2020.08.02 |
ajax 처리 후 로딩중 감추는 타이밍 (0) | 2020.08.02 |
이미지 클릭하면 다운로드 시키기 (0) | 2020.08.02 |
jQuery - delegate (0) | 2020.08.02 |
댓글