KH/JavaScript
CSS_ 선형 그래디언트
오늘의 진
2022. 9. 28. 15:00
그라데이션
그래디언트 : 둘 이상의 색 사이의 색상 표현을 부드럽게 전환해주는 효과를 의미 (그라데이션)
CSS3에서 제공하는 그래디언트
- 선형 그래디언트(linear gradients)
- 원형 그래디언트(radial gradients)
선형 그래디언트
(선형 그래디언트를 만들기 위해서는 최소한 두개 이상의 색상 지정점이 필요)
[선형 그라데이션]
//방법1
createLinearGradient(시작점 x1,y1 , 끝점x2,y2); >> 선형 그라데이션 지정
//방법2
background : linear-gradient(진행방향, 색상 지정점1, 색지정점2, ...);
(예)background:linear-gradient(green, yellow);
[원형 그라데이션]
createRadialGradient(x1,y1,첫번째 원의 반지름r1,x2,y2, 두번째 원의 반지름r2 );
>> 원형 그라데이션 지정
addColorstop(오프셋, 색상);
>> 그라데이션 경계색 지정
>>오프셋 : 0.0-1.0까지 색의 상대적인 위치
addColorStop() 메소드는 그라데이션 객체의 색상과 위치를 지정한다.
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>MY Gradient</title>
</head>
<body>
<canvas id="myCanvas" width="280" height="90" style="border: 1px dotted #000;"></canvas>
<script>
var c=document.getElementById("myCanvas");
var ctx = c.getContext("2d");
// createLinearGradient(x1,y1,x2,y2)
// 인자 : x1,y1 : 그라디언트를 적용할 면의 시작 축좌표
// 인자 : x2,y2 : 그라디언트를 적용할 면의 종료 축 좌표
var grd = ctx.createLinearGradient(0,0,250,0);
//전체를 1로 본다.
grd.addColorStop(0,"red"); //0-0.5까지 red
grd.addColorStop("0.5","green"); //0.5-0.8 green
grd.addColorStop("0.8","magenta"); // 0.8-1 magenta
grd.addColorStop(1,"black");
ctx.fillStyle = grd;
ctx.font = "25px Arial";
ctx.fillText("Hava a nice day today",10,50)
</script>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<canvas id="myCanvas1" width="200" height="100"></canvas>
<canvas id="myCanvas2" width="200" height="100"></canvas>
<canvas id="myCanvas3" width="200" height="100"></canvas>
<script>
var c = document.getElementById("myCanvas1");
var ctx = c.getContext("2d");
//create gradient
var grd = ctx.createLinearGradient(0,0,160,0);
grd.addColorStop(0,"blue");
grd.addColorStop(0.5,"cyan");
grd.addColorStop(1,"white");
//Fill with gradient
ctx.fillStyle=grd;
ctx.fillRect(10,10,150,80);
//--------------------------------
var c = document.getElementById("myCanvas2");
var ctx = c.getContext("2d");
//create gradient
var grd = ctx.createRadialGradient(75,30,5,75,30,100);
grd.addColorStop(0,"red");
grd.addColorStop(0.5,"green");
grd.addColorStop(1,"white");
//fill with gradient
ctx.fillStyle=grd;
ctx.fillRect(10,10,150,80);
//-------------------------------------------
var c = document.getElementById("myCanvas3");
var ctx = c.getContext("2d");
var grd = ctx.createLinearGradient(170,0,0,80);
grd.addColorStop(0,"black");
grd.addColorStop("0.3","magenta");
grd.addColorStop("0.5","blue");
grd.addColorStop("0.8","yellow");
grd.addColorStop(1,"red");
ctx.fillStyle = grd;
ctx.fillRect(10,10,150,80);
</script>
</body>
</html>