Rumah > hujung hadapan web > Tutorial H5 > HTML5版径向渐变梯度色彩

HTML5版径向渐变梯度色彩

PHP中文网
Lepaskan: 2016-05-17 09:08:27
asal
3361 orang telah melayarinya

HTML5版径向渐变梯度色彩

       有个读者问我如何用HTML5生成一个径向梯度色彩效果,而不使用图片。仔细思考下,其实这个问题一点都不难,请看代码。

1124.jpg

HTML

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

<!DOCTYPE html>

<html >

<head>

<meta charset="utf-8" />

<meta name="author" content="Script Tutorials" />

<title>HTML5 Radial Gradient | Script Tutorials</title>

<!-- add styles -->

<link href="css/main.css" rel="stylesheet" type="text/css" />

<!-- add script -->

<script src="js/script.js">

</script>

</head>

<body>

<div>

<canvas id="gradient" width="500" height="500" tabindex="1">

</canvas>

</div>

</body>

</html>

Salin selepas log masuk

JS

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

// Get angle color function

function getAngleColor(angle) {

var color, d;

 

if (angle < Math.PI * 2 / 5) { // angle: 0-72

d = 255 / (Math.PI * 2 / 5) * angle;

color = &#39;255,&#39; + Math.round(d) + &#39;,0&#39;; // color: 255,0,0 - 255,255,0

} else if (angle < Math.PI * 4 / 5) { // angle: 72-144

d = 255 / (Math.PI * 2 / 5) * (angle - Math.PI * 2 / 5);

color = (255 - Math.round(d)) + &#39;,255,0&#39;; // color: 255,255,0 - 0,255,0

} else if (angle < Math.PI * 6 / 5) { // angle: 144-216

d = 255 / (Math.PI * 2 / 5) * (angle - Math.PI * 4 / 5);

color = &#39;0,255,&#39; + Math.round(d); // color: 0,255,0 - 0,255,255

} else if (angle < Math.PI * 8 / 5) { // angle: 216-288

d = 255 / (Math.PI * 2 / 5) * (angle - Math.PI * 6 / 5);

color = &#39;0,&#39;+(255 - Math.round(d)) + &#39;,255&#39;; // color: 0,255,255 - 0,0,255

} else { // angle: 288-360

d = 255 / (Math.PI * 2 / 5) * (angle - Math.PI * 8 / 5);

color = Math.round(d) + &#39;,0,&#39; + (255 - Math.round(d)) ; // color: 0,0,255 - 255,0,0

}

return color;

}

 

// inner variables

var iSectors = 360;

var iSectorAngle = (360 / iSectors) / 180 * Math.PI; // in radians

 

// Draw radial gradient function

function drawGradient() {

 

// prepare canvas and context objects

var canvas = document.getElementById(&#39;gradient&#39;);

var ctx = canvas.getContext(&#39;2d&#39;);

 

// clear canvas

ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height);

 

// save current context

ctx.save();

 

// move to center

ctx.translate(canvas.width / 2, canvas.height / 2);

 

// draw all sectors

for (var i = 0; i < iSectors; i++) {

 

// start and end angles (in radians)

var startAngle = 0;

var endAngle = startAngle + iSectorAngle;

 

// radius for sectors

var radius = (canvas.width / 2) - 1;

 

// get angle color

var color = getAngleColor(iSectorAngle * i);

 

// draw a sector

ctx.beginPath();

ctx.moveTo(0, 0);

ctx.arc(0, 0, radius, startAngle, endAngle, false);

ctx.closePath();

 

// stroke a sector

ctx.strokeStyle = &#39;rgb(&#39;+color+&#39;)&#39;;

ctx.stroke();

 

// fill a sector

ctx.fillStyle = &#39;rgb(&#39;+color+&#39;)&#39;;

ctx.fill();

 

// rotate to the next sector

ctx.rotate(iSectorAngle);

}

 

// restore context

ctx.restore();

}

 

// initialization

if(window.attachEvent) {

window.attachEvent(&#39;onload&#39;, drawGradient);

} else {

if(window.onload) {

var curronload = window.onload;

var newonload = function() {

curronload();

drawGradient();

};

window.onload = newonload;

} else {

window.onload = drawGradient;

}

}

Salin selepas log masuk

以上就是HTML5版径向渐变梯度色彩的内容,更多相关内容请关注PHP中文网(www.php.cn)!


Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan