<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>canvas绘制线性渐变-高级函数</title>
</head>

<body onLoad="draw('canvas')">
<canvas id="canvas" width="1300" height="500" />
<script type="text/javascript">
function draw(id){
var canvas = document.getElementById(id);
if (canvas == null)
return false;
var context = canvas.getContext('2d');
context.fillStyle = "#f0f0f0";
context.fillRect(0, 0, 1300, 500);/*填充矩形背景色*/
var gl = context.createLinearGradient(0, 0, 1300, 500);/*定义渐变的方向吧,0,0是渐变起点的坐标,300,300是重点的坐标,这样写是一个正方形的对角线渐变。如果是0,0,0,300,则是由上自下的一个垂直渐变*/
gl.addColorStop(0, 'rgb(155, 0, 255)' );/*指定渐变的颜色额,两个值(offset, color)其中,color值可以有fillstyle的四种一样额形式#十六进制、rgb、rgba、英文单词等都可以,而前边的offset值只可以在0-1之间,是指颜色离开渐变点的偏移量。。addColorStop可以不止两个,可以定义很多次,但是,最少有两个,用以定义开始颜色和结束颜色。而且,开始的偏移值必须为0,结束的偏移值必须为1 ,中间的必须在0-1之间*/
<!--另外,createLinearGradient和addColorStop一定是紧接着写的-->
gl.addColorStop(1, 'rgb(255, 0, 255)');
context.fillStyle = gl;/*fillStyle不止填充颜色一种形式,这里呢,填充渐变是另一种形式,还有填充图像和文字等。但是,这个填充渐变,不是直接写的是,而是用一个变量gl代替context.createLinearGradient的形式,然后style再等于变量gl就可以了*/
context.fillRect(0, 0, 1300, 500);/*画出要填充的范围*/
<!--/*---------------------------------------以上为背景的渐变------------------------------------------------*/-->
var g2 = context.createLinearGradient(0, 0, 0, 400);/*这样是垂直的渐变*/
g2.addColorStop(0, 'rgba(154, 255, 0, 0.25)');
g2.addColorStop(0.5, 'rgba(100, 255, 60, 0.35)');
g2.addColorStop(1, 'rgba(60, 255, 173, 0.55)');
for (var i=0; i<10; i++){
context.beginPath();
context.arc(i * 25, i * 25, i * 25, 0, Math.PI * 2, true);
context.closePath();
context.fillStyle = g2;
context.fill();
}

<!--这个效果是先定义一个线性渐变样式,再设置渐变的颜色,这里设置了三个,然后用一个for循环,做出十个圆形,最后填充圆形的样式和颜色-->
}
</script>
</body>
</html>

CSS3-canvas绘制线性渐变的更多相关文章

  1. 深入理解css3中的线性渐变

    css3中的线性渐变 线性渐变公式: background-image: linear-gradient( [ <angle> | <side-or-corner> ]?, & ...

  2. CSS3中颜色线性渐变实战

    css3线性渐变可以设置3个参数值:方向.起始颜色.结束颜色.最简单的模式只需要定义起始颜色和结束颜色,起点.终点和方向默认自元素的顶部到底部.下面举例说明: CSS Code复制内容到剪贴板 .te ...

  3. Canvas绘制渐变

    1.绘制线性渐变 Canvas提供了用于创建线性渐变的函数createLinearGradient(x0,y0,x1,y1),坐标点(x0,y0)是起点 ,(x1,y1)是终点 创建一个渐变色 var ...

  4. 再说CSS3渐变——线性渐变

    渐变背景一直以来在Web页面中都是一种常见的视觉元素.但一直以来,Web设计师都是通过图形软件设计这些渐变效果,然后以图片形式或者背景图片的形式运用到页面中.Web页面上实现的效果,仅从页面的视觉效果 ...

  5. Canvas使用渐变之-线性渐变详解

    在canvas里面,除了使用纯色,我们还能把填充和笔触样式设置为渐变色:线性渐变和径向渐变. 线性渐变 createLinearGradient(x0,y0,x1,y1)  返回 CanvasGrad ...

  6. CSS3渐变——线性渐变

    渐变背景一直以来在Web页面中都是一种常见的视觉元素.但一直以来,Web设计师都是通过图形软件设计这些渐变效果,然后以图片形式或者背景图片的形式运用到页面中.Web页面上实现的效果,仅从页面的视觉效果 ...

  7. HTML5 Canvas ( 线性渐变, 升级版的星空 ) fillStyle, createLinearGradient, addColorStop

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  8. Canvas 绘制矩形,圆形,不规则图形(线条),渐变等图像效果

    绘制矩形: getContext("2d") 对象是内建的 HTML5 对象,拥有多种绘制路径.矩形.圆形.字符以及添加图像的方法. fillStyle 方法将其染成红色,fill ...

  9. 使用canvas来完成线性渐变和径向渐变的功能

    fillStyle的第二种使用情况就是渐变色的填充.渐变色就分为线性渐变色和径向渐变色.   线性渐变:大致分为两步 这里又会使用到canvas的两个新的函数.   第一步 : 使用一个新的函数cre ...

随机推荐

  1. jquery的getjson与jsonp

    仔细的学习jquery的getjson的用法. http://www.cnblogs.com/leejersey/p/3750232.html http://www.jb51.net/article/ ...

  2. nginx location语法使用说明

    语法规则: location [=|~|~*|^~] /uri/ { … } = 开头表示精确匹配 ^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即可.nginx不对url做编码,因 ...

  3. C++11异常处理 noexcept

    1.简介 在C语言中,如果程序的运行出现异常.错误,我们想提供方案处理这些异常时,我们面临许多问题,如: (1)C语言没有提供统一(标准)的方式来处理错误: (2)无法保证错误会被正确的处理: (3) ...

  4. Beta版本冲刺Day4

    会议讨论: 628:由于昨天的考试我们组目前只把项目放到了服务器上,配置Java环境遇到了问题.601:将一些原来的界面进行了修改,修改成了更加美观的外形. 528:进行一些还未完成得到功能,比如查询 ...

  5. poj2774 后缀数组2个字符串的最长公共子串

    Long Long Message Time Limit: 4000MS   Memory Limit: 131072K Total Submissions: 26601   Accepted: 10 ...

  6. 单例模式:Instance

    前言: 学习面向对象程序设计的朋友应该知道,我们大多数情况下通过 new 操作来实例化对象的.对于一些仅需要一次初始化的对象来说,频繁的new操作无疑会过多浪费内存空间.基于此,单例模式便应运而生了. ...

  7. bzoj 2938 AC自动机

    根据题意建出trie图,代表单词的点不能走,直接或间接指向它的点也不能走.这样的话如果能在图中找到一个环的话就是TAK,否则是NIE. #include<iostream> #includ ...

  8. 【BZOJ-2095】Bridge 最大流 + 混合图欧拉回路 + 二分

    2095: [Poi2010]Bridges Time Limit: 10 Sec  Memory Limit: 259 MBSubmit: 604  Solved: 218[Submit][Stat ...

  9. 【bzoj1178】 Apio2009—CONVENTION会议中心

    http://www.lydsy.com/JudgeOnline/problem.php?id=1178 (题目链接) 题意 给出n个区间,问在区间两两不相交的情况下最多能选出多少区间,并输出字典序最 ...

  10. eclipse无法识别javax.servlet.*的问题

    这个问题对应的jar包为servlet-api.jar,默认jdk是没有这个包,需要在web容器上找到这个包,比如我用的是tomcat,那么可以在:“\Tomcat 7.0\lib\servlet-a ...