广告
返回顶部
首页 > 资讯 > 精选 >使用canvas怎么实现一个线性渐变和径向渐变效果
  • 118
分享到

使用canvas怎么实现一个线性渐变和径向渐变效果

2023-06-09 12:06:22 118人浏览 独家记忆
摘要

本篇文章给大家分享的是有关使用canvas怎么实现一个线性渐变和径向渐变效果,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。fillStyle的第二种使用情况就是渐变色的填充。渐

本篇文章给大家分享的是有关使用canvas怎么实现一个线性渐变和径向渐变效果,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

fillStyle的第二种使用情况就是渐变色的填充。渐变色就分为线性渐变色和径向渐变色。

线性渐变:大致分为两步 这里又会使用到canvas的两个新的函数。

第一步 : 使用一个新的函数createLinearGradient( xstart,ystart,xend,yend );var linearGrad = context.createLinearGradient(xstart,ystart,xend,yend);

他有四个参数。分别为,xstart,ystart,xend,yend他们构成两个坐标,这两个坐标构成一个线段。这个线段实际上就是一个渐变线。渐变线用于定义渐变的方向和尺度。

第二步 : 就是在这个渐变线的基础上添加colorStop,这个方法叫addColorStop(stop,color)。他有两个参数分别为stop,color。第一个参数是一个浮点值用来决定关键色的位置。第二个参数是用来决定关键色的颜色。linearGrad.addColorStop(stop,color);

当做完这两步后这个linearGrad变量就可以作为fillStyle传入这个属性中。

看代码:

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <meta name="viewport" content="width=device-width, initial-scale=1.0">    <meta Http-equiv="X-UA-Compatible" content="ie=edge">    <title>线性渐变</title></head><body>    <canvas id="canvas" style="border: 1px solid #aaa;display:block;margin:0 auto"></canvas></body></html><script>    window.onload = function () {        var canvas = document.getElementById("canvas");        canvas.width = 800;        canvas.height = 600;        if (canvas.getContext("2d")) {            var context = canvas.getContext("2d");  //获取上下文绘图环境            var linearGrad = context.createLinearGradient(0, 0, 800, 600);   //渐变线的起始坐标为(0,0)终止坐标为(800,600)            linearGrad.addColorStop(0.0, '#000');    //第一个参数表示关键颜色的位置0表示起始位置,1表示终点位置,第二个参数表示关键颜色的颜色。            linearGrad.addColorStop(1.0, '#fff');            context.fillStyle = linearGrad;            context.fillRect(0, 0, 800, 600);        } else {            alert('您的浏览器不支持canvas,请更换浏览器尝试~')        }    }</script>

效果图:

使用canvas怎么实现一个线性渐变和径向渐变效果

当我们创建好linearGrad这个变量后,我们是可以addColorStop是可以添加很多个的。

举个例子:

代码:

var linearGrad = context.createLinearGradient(0, 0, 800, 600);   //渐变线的起始坐标为(0,0)终止坐标为(800,600) linearGrad.addColorStop(0.0, '#fff'); linearGrad.addColorStop(0.25, '#FB3'); linearGrad.addColorStop(0.5, '#690'); linearGrad.addColorStop(0.75, '#09C'); linearGrad.addColorStop(1.0, '#000');

效果图:

使用canvas怎么实现一个线性渐变和径向渐变效果

还有我们定义的渐变线是倾斜的,我们也可以定义成水平的或者垂直的。我们只要修改一下渐变线的终止坐标即可。看代码,做成水平的渐变色:

var linearGrad = context.createLinearGradient(0, 0, 800, 0);

效果图:

使用canvas怎么实现一个线性渐变和径向渐变效果

垂直的渐变色:

var linearGrad = context.createLinearGradient(0, 0, 800, 0);

效果图:

使用canvas怎么实现一个线性渐变和径向渐变效果

我们所做的不管倾斜的水平的还是垂直的,都是贯穿了整个画布,那如果我们的渐变线只指定到了画布的一部分会是什么效果呢?我们修改一下

var linearGrad = context.createLinearGradient(0, 0, 400, 300);

效果图:

使用canvas怎么实现一个线性渐变和径向渐变效果

同理我们所创建的渐变线也可以超过这个画布的最大宽高。我们修改一下

var linearGrad = context.createLinearGradient(-200, -100, 1000, 800);

效果图:

使用canvas怎么实现一个线性渐变和径向渐变效果

还有我们所绘制的填充的形状也不一定占满整个画布的。我们可以任意调整自己定义的形状。这个填充的形状会在我们定义的渐变线上找到合适的填充色进而填充出来。举个例子:

var linearGrad = context.createLinearGradient(-200, -100, 1000, 800);

效果图:

使用canvas怎么实现一个线性渐变和径向渐变效果

径向渐变:与线性渐变的区别是,径向渐变定义的是一个放射状的渐变。而这个放射状的渐变是定义在两个同心圆的基础上。而不像线性渐变是定义在两点之间的。

径向渐变也是需要两步来完成。

第一步 : 使用一个新的函数createRadialGradient(x0,y0,r0,x1,y1,r1); 他有6个参数。前三个参数定义第一个圆环的坐标和半径,后三个参数定义第二个圆环的坐标和半径。整个径向渐变就发生在这两个圆之间。var radialGrad = context.createRadialGradient(x0,y0,r0,x1,y1,r1);

第二步 : 和线性渐变是一样的,就不过多介绍。radialGrad.addColorStop(stop,color);

代码和线性渐变的代码十分类似。只不过这里使用的是createRadialGradient,我们给他传入参数createRadialGradient(300,300,0,300,300,500),前三个参数定义的是在画布中心,半径为0的一个点。后三个参数定义的是在画布中心半径为500的一个大圆。这样就定义了一个从一个点向外辐射的一个径向渐变。看一下代码

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <meta name="viewport" content="width=device-width, initial-scale=1.0">    <meta http-equiv="X-UA-Compatible" content="ie=edge">    <title>径向渐变</title></head><body>    <canvas id="canvas" style="border: 1px solid #aaa;display:block;margin:0 auto"></canvas></body></html><script>    window.onload = function () {        var canvas = document.getElementById("canvas");        canvas.width = 600;        canvas.height = 600;        if (canvas.getContext("2d")) {            var context = canvas.getContext("2d");            var radialGrad = context.createRadialGradient(300, 300, 0, 300, 300, 500);            radialGrad.addColorStop(0.0, '#fff');            radialGrad.addColorStop(0.25, '#FB3');            radialGrad.addColorStop(0.5, '#690');            radialGrad.addColorStop(0.75, '#09C');            radialGrad.addColorStop(1.0, '#000');            context.fillStyle = radialGrad;            context.fillRect(0, 0, 600, 600);        } else {            alert('您的浏览器不支持canvas,请更换浏览器尝试~')        }    }</script>

效果图:

使用canvas怎么实现一个线性渐变和径向渐变效果

以上就是使用canvas怎么实现一个线性渐变和径向渐变效果,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注编程网精选频道。

--结束END--

本文标题: 使用canvas怎么实现一个线性渐变和径向渐变效果

本文链接: https://www.lsjlt.com/news/256019.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 使用canvas怎么实现一个线性渐变和径向渐变效果
    本篇文章给大家分享的是有关使用canvas怎么实现一个线性渐变和径向渐变效果,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。fillStyle的第二种使用情况就是渐变色的填充。渐...
    99+
    2023-06-09
  • css3中怎么实现线性渐变和径向渐变
    css3中怎么实现线性渐变和径向渐变,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。 线性渐变:i...
    99+
    2022-10-19
  • css如何实现背景颜色线性渐变和径向渐变效果
    这篇文章主要介绍了css如何实现背景颜色线性渐变和径向渐变效果的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇css如何实现背景颜色线性渐变和径向渐变效果文章都会有所收获,下面我们一起来看看吧。一、线性渐变(li...
    99+
    2023-07-05
  • css背景渐变属性之径向渐变效果怎么实现
    今天小编给大家分享一下css背景渐变属性之径向渐变效果怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们...
    99+
    2022-10-19
  • CSS怎么实现线性渐变效果
    这篇文章将为大家详细讲解有关CSS怎么实现线性渐变效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。   代码示例如下:   <!DOCTYPE>   ...
    99+
    2022-10-19
  • CSS中怎么使用径向渐变实现卡券效果
    这篇文章将为大家详细讲解有关CSS中怎么使用径向渐变实现卡券效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。常见的卡券样式如下: 使用伪元素实现(Less 版本) ticket.less.or...
    99+
    2023-06-08
  • 如何使用CSS3实现重复径向渐变效果
    这篇文章将为大家详细讲解有关如何使用CSS3实现重复径向渐变效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。   代码示例如下:   <!DOCTYPE>...
    99+
    2022-10-19
  • 使用CSS3怎么实现一个渐变文字效果
    这篇文章给大家介绍使用CSS3怎么实现一个渐变文字效果,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。相应的HTML代码如下:<h3 class="text-gradient"&nbs...
    99+
    2023-06-08
  • 使用css3怎么实现一个背景动态渐变效果
    使用css3怎么实现一个背景动态渐变效果?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。css是什么意思css是一种用来表现HTML或XML等文件样式的计算机语言,主要是用来设计...
    99+
    2023-06-08
  • 如何使用CSS3实现重复线性渐变效果
    这篇文章主要为大家展示了“如何使用CSS3实现重复线性渐变效果”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用CSS3实现重复线性渐变效果”这篇文章吧。 ...
    99+
    2022-10-19
  • 使用CSS3怎么实现颜色渐变效果
    本篇文章给大家分享的是有关使用CSS3怎么实现颜色渐变效果,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。<h2 class="site__title&...
    99+
    2023-06-08
  • 使用css3怎么实现一个文字扫光渐变动画效果
    使用css3怎么实现一个文字扫光渐变动画效果?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。利用css3这个属性(背景剪裁):background-clip: b...
    99+
    2023-06-08
  • 怎么用CSS实现线性渐变的凹面矩形过渡效果
    这篇文章主要介绍“怎么用CSS实现线性渐变的凹面矩形过渡效果”,在日常操作中,相信很多人在怎么用CSS实现线性渐变的凹面矩形过渡效果问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用CSS实现线性渐变的凹面...
    99+
    2023-06-08
  • 如何在Android中使用Fab(FloatingActionButton)方法实现一个滑动渐变效果
    本篇文章为大家展示了如何在Android中使用Fab(FloatingActionButton)方法实现一个滑动渐变效果,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Promoted Actions...
    99+
    2023-05-31
    android fab(floatingactionbutton) roi
  • css3中怎么使用animation属性实现背景颜色动态渐变的效果
    本篇内容主要讲解“css3中怎么使用animation属性实现背景颜色动态渐变的效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“css3中怎么使用animat...
    99+
    2022-10-19
  • 使用css3怎么实现一个文本悬停改变效果
    使用css3怎么实现一个文本悬停改变效果?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。html<h2 class="hover-tex...
    99+
    2023-06-08
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作