微信小程序基于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控制swfObject应用介绍
Nov 29 Javascript
JavaScript检查某个function是否是原生代码的方法
Aug 20 Javascript
JavaScript中的全局对象介绍
Jan 01 Javascript
详解JavaScript的Date对象(制作简易钟表)
Apr 07 Javascript
JavaScript实现同一个页面打开多张图片
Dec 29 Javascript
详解angularjs中如何实现控制器和指令之间交互
May 31 Javascript
基于vue2框架的机器人自动回复mini-project实例代码
Jun 13 Javascript
jQuery实现广告条滚动效果
Aug 22 jQuery
探讨Vue.js的组件和模板
Oct 27 Javascript
JS检测浏览器开发者工具是否打开的方法详解
Oct 02 Javascript
vue点击Dashboard不同内容 跳转到同一表格的实例
Nov 13 Javascript
js实现随机点名
Jan 19 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
一个简单的自动发送邮件系统(二)
2006/10/09 PHP
PHP实现自动对图片进行滚动显示的方法
2015/03/12 PHP
PHP简单实现文本计数器的方法
2016/04/28 PHP
Zend Framework处理Json数据方法详解
2016/12/09 PHP
PHP关于foreach复制知识点总结
2019/01/28 PHP
PHP设计模式入门之状态模式原理与实现方法分析
2020/04/26 PHP
基于jquery实现点击左右按钮图片横向滚动
2013/04/11 Javascript
js(jQuery)获取时间的方法及常用时间类搜集
2013/10/23 Javascript
javascript下拉框选项单击事件的例子分享
2015/03/04 Javascript
详解AngularJs中$resource和restfu服务端数据交互
2016/09/21 Javascript
d3.js实现简单的网络拓扑图实例代码
2016/11/06 Javascript
AngularJS实现表格的增删改查(仅限前端)
2017/07/04 Javascript
nodejs Assert中equal(),strictEqual(),deepEqual(),strictDeepEqual()比较
2017/09/18 NodeJs
在Mac下彻底卸载node和npm的方法
2018/05/16 Javascript
代码分析vue中如何配置less
2018/09/28 Javascript
微信小程序顶部导航栏滑动tab效果
2019/01/28 Javascript
原生js实现3D轮播图
2020/03/21 Javascript
Vue如何获取数据列表展示
2019/12/11 Javascript
JS获取当前时间的年月日时分秒及时间的格式化的方法
2019/12/18 Javascript
浅析vue-router中params和query的区别
2019/12/24 Javascript
js实现飞机大战游戏
2020/08/26 Javascript
[07:40]DOTA2每周TOP10 精彩击杀集锦vol.4
2014/06/25 DOTA
PyCharm代码整体缩进,反向缩进的方法
2018/06/25 Python
Python实现合并excel表格的方法分析
2019/04/13 Python
HelloFresh澳大利亚:订购你的美味食品盒、健康餐食
2018/03/28 全球购物
趣味活动策划方案
2014/02/08 职场文书
教师专业自荐书范文
2014/02/10 职场文书
国贸专业自荐信范文
2014/03/02 职场文书
幼儿园秋季开学寄语
2014/08/02 职场文书
2014党员学习《反腐倡廉警示教育读本》思想汇报
2014/09/13 职场文书
酒店采购员岗位职责
2015/04/03 职场文书
财务统计员岗位职责
2015/04/14 职场文书
网络妈妈观后感
2015/06/08 职场文书
护士岗位竞聘书
2015/09/15 职场文书
golang通过递归遍历生成树状结构的操作
2021/04/28 Golang
springboot 启动如何排除某些bean的注入
2021/08/02 Java/Android