微信小程序基于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 相关文章推荐
javascript中的new使用
Mar 20 Javascript
Javascript计算两个marker之间的距离(Google Map V3)
Apr 26 Javascript
javascript中scrollTop详解
Apr 13 Javascript
浅析JavaScript访问对象属性和方法及区别
Nov 16 Javascript
javascript创建对象、对象继承的实用方式详解
Mar 08 Javascript
几种tab切换详解
Feb 03 Javascript
vue-cli整合vuex的时候,修改actions和mutations,实现热部署的方法
Sep 19 Javascript
Vant的安装和配合引入Vue.js项目里的方法步骤
Dec 05 Javascript
MockJs结合json-server模拟后台数据
Aug 26 Javascript
vue项目中自定义video视频控制条的实现代码
Apr 26 Javascript
如何在vue 中使用柱状图 并自修改配置
Jan 21 Vue.js
什么是SOLID
Mar 24 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
附件名前加网站名
2008/03/23 PHP
php 调用远程url的六种方法小结
2009/11/02 PHP
PHP file_exists问题杂谈
2012/05/07 PHP
thinkphp区间查询、统计查询与SQL直接查询实例分析
2014/11/24 PHP
PHP生成json和xml类型接口数据格式
2015/05/17 PHP
详解PHP函数 strip_tags 处理字符串缺陷bug
2017/06/11 PHP
基于PHP实现栈数据结构和括号匹配算法示例
2017/08/10 PHP
PHP实现广度优先搜索算法(BFS,Broad First Search)详解
2017/09/16 PHP
基于JavaScript怎么实现让歌词滚动播放
2015/11/03 Javascript
JavaScript+html5 canvas绘制渐变区域完整实例
2016/01/26 Javascript
基于javascript实现页面加载loading效果
2020/09/15 Javascript
jquery分页插件jquery.pagination.js使用方法解析
2016/04/01 Javascript
基于RequireJS和JQuery的模块化编程日常问题解析
2016/04/14 Javascript
Vue2递归组件实现树形菜单
2017/04/10 Javascript
Angular通过angular-cli来搭建web前端项目的方法
2017/07/27 Javascript
Angular在模板驱动表单中自定义校验器的方法
2017/08/09 Javascript
Angular 4.x+Ionic3踩坑之Ionic 3.x界面传值详解
2018/03/13 Javascript
详解JS取出两个数组中的不同或相同元素
2019/03/20 Javascript
微信小程序 多行文本显示...+显示更多按钮和收起更多按钮功能
2019/09/26 Javascript
[02:08]2018年度CS GO枪械皮肤设计大赛优秀作者-完美盛典
2018/12/16 DOTA
使用python实现生成用户信息
2017/03/20 Python
python并发2之使用asyncio处理并发
2017/12/21 Python
flask框架中勾子函数的使用详解
2018/08/01 Python
python3的输入方式及多组输入方法
2018/10/17 Python
详解如何管理多个Python版本和虚拟环境
2019/05/10 Python
python 使用递归实现打印一个数字的每一位示例
2020/02/27 Python
LN-CC美国:伦敦时尚生活的缩影
2019/02/19 全球购物
暑假实习求职信范文
2013/09/22 职场文书
安全生产实施方案
2014/02/23 职场文书
库房保管员岗位职责
2014/04/07 职场文书
入股协议书
2014/04/14 职场文书
小学生放飞梦想演讲稿
2014/08/26 职场文书
2014年学生资助工作总结
2014/12/18 职场文书
5.12护士节活动总结
2015/02/10 职场文书
幼儿园教师节活动总结
2015/03/23 职场文书
深入理解go缓存库freecache的使用
2022/02/15 Golang