微信小程序基于canvas渐变实现的彩虹效果示例


Posted in Javascript onMay 03, 2019

本文实例讲述了微信小程序基于canvas渐变实现的彩虹效果。分享给大家供大家参考,具体如下:

微信小程序提供了两种渐变的方式:

    createLinearGradient(x,y,x1,y1)创建一个线性的渐变。

        x,y           起点坐标

        x1,y1        终点坐标

    createCircularGradient(x,y,r)创建一个从圆心开始的渐变。

        x,y            圆心坐标

        r                 半径

创建了渐变对象之后,必须添加两个或者两个以上的渐变点;

addColorStop(position, color)方法用于指定颜色渐变点的位置和颜色,位置必须位于0到1之间。

一般用setFillStyle()来设置渐变,然后进行画图描述。

使用 createLinearGradient()

const ctx = wx.createCanvasContext('myCanvas')
// Create linear gradient
const grd = ctx.createLinearGradient(0,120, 120, 0)
grd.addColorStop(0, '#FFFF00')
grd.addColorStop(1, '#FF0000')
// Fill with gradient
ctx.setFillStyle(grd);//将渐变色渲染入正方形
ctx.fillRect(20, 20, 120, 120);//起点坐标为(20,20),长宽都为120px的正方形
ctx.draw();

微信小程序基于canvas渐变实现的彩虹效果示例

使用 createCircularGradient()

const ctx = wx.createCanvasContext('myCanvas')
// Create circular gradient
const grd = ctx.createCircularGradient(170, 170, 150);
grd.addColorStop(0.79, '#fff')
grd.addColorStop(0.81, '#8B00FF')
grd.addColorStop(0.83, '#0000FF')
grd.addColorStop(0.85, '#00FFFF')
grd.addColorStop(0.87, '#00FF00')
grd.addColorStop(0.89, '#FFFF00')
grd.addColorStop(0.93, '#FF7F00')
grd.addColorStop(0.95, '#FF0000')
grd.addColorStop(1, '#fff')
// Fill with gradient
ctx.setFillStyle(grd)//将渐变色渲染入矩形
ctx.fillRect(20, 20, 300,120)//起点坐标为(20,20),长300px宽120px的矩形
ctx.draw()

微信小程序基于canvas渐变实现的彩虹效果示例

补充:addColorStop的position为渐变点的位置,该位置是颜色设置的最中心处。

该文如有描述不当,烦请各位道友指摘。

希望本文所述对大家微信小程序开发有所帮助。

Javascript 相关文章推荐
让焦点自动跳转
Jul 01 Javascript
xheditor与validate插件冲突的解决方案
Apr 15 Javascript
javascript实现日历控件(年月日关闭按钮)
Dec 12 Javascript
JavaScript 数组详解
Oct 10 Javascript
javascript使用location.search的示例
Nov 05 Javascript
JS连连看源码完美注释版(推荐)
Dec 09 Javascript
JavaScript函数定义的常见注意事项小结
Sep 16 Javascript
JavaScript中的getMilliseconds()方法使用详解
Jun 10 Javascript
使用JavaScript获取Request中参数的值方法
Sep 27 Javascript
微信小程序后台解密用户数据实例详解
Jun 28 Javascript
动态创建Angular组件实现popup弹窗功能
Sep 15 Javascript
NW.js 简介与使用方法
Feb 01 Javascript
微信小程序实现的canvas合成图片功能示例
May 03 #Javascript
微信小程序获取用户信息的两种方法wx.getUserInfo与open-data实例分析
May 03 #Javascript
axios封装,使用拦截器统一处理接口,超详细的教程(推荐)
May 02 #Javascript
JavaScript中的垃圾回收与内存泄漏示例详解
May 02 #Javascript
详解微信小程序缓存--缓存时效性
May 02 #Javascript
详解如何使用router-link对象方式传递参数?
May 02 #Javascript
详解Vue底部导航栏组件
May 02 #Javascript
You might like
SONY SRF-M100的电路分析
2021/03/02 无线电
ftp类(example.php)
2006/10/09 PHP
PHP5.5安装PHPRedis扩展及连接测试方法
2017/01/22 PHP
使用laravel的Eloquent模型如何获取数据库的指定列
2019/10/17 PHP
Javascript 获取字符串字节数的多种方法
2009/06/02 Javascript
Ext.get() 和 Ext.query()组合使用实现最灵活的取元素方式
2011/09/26 Javascript
Function.prototype.bind用法示例
2013/09/16 Javascript
基于javascript实现图片懒加载
2016/01/05 Javascript
浅谈javascript的call()、apply()、bind()的用法
2016/02/21 Javascript
使用JS编写的随机抽取号码的小程序
2017/08/11 Javascript
原生JavaScript实现todolist功能
2018/03/02 Javascript
js统计页面上每个标签的数量实例代码
2018/05/29 Javascript
vue中倒计时组件的实例代码
2018/07/06 Javascript
vue绑定事件后获取绑定事件中的this方法
2018/09/15 Javascript
微信小程序使用for循环动态渲染页面操作示例
2018/12/25 Javascript
vue axios post发送复杂对象问题
2019/06/04 Javascript
VUE+node(express)实现前后端分离
2019/10/13 Javascript
微信小程序实现页面监听自定义组件的触发事件
2020/11/01 Javascript
PHP 502bad gateway原因及解决方案
2020/11/13 Javascript
win系统下为Python3.5安装flask-mongoengine 库
2016/12/20 Python
PyQt5主窗口动态加载Widget实例代码
2018/02/07 Python
在python中使用with打开多个文件的方法
2019/01/07 Python
Python实现获取系统临时目录及临时文件的方法示例
2019/06/26 Python
python range实例用法分享
2020/02/06 Python
python-地图可视化组件folium的操作
2020/12/14 Python
css3实现蒙版弹幕功能
2019/06/18 HTML / CSS
怎样声明一个匿名的内部类
2016/06/01 面试题
致跳高运动员广播稿
2014/01/13 职场文书
庆祝教师节活动方案
2014/01/31 职场文书
《童年的发现》教学反思
2014/02/14 职场文书
《三峡》教学反思
2014/03/01 职场文书
大学迎新晚会主持词
2014/03/24 职场文书
2014年妇幼卫生工作总结
2014/12/09 职场文书
傲慢与偏见电影观后感
2015/06/10 职场文书
Django 实现jwt认证的示例
2021/04/30 Python
MySQL8.0.18配置多主一从
2021/06/21 MySQL