微信小程序基于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 相关文章推荐
使用js Math.random()函数生成n到m间的随机数字
Oct 09 Javascript
JavaScript中的getDay()方法使用详解
Jun 09 Javascript
JS实现iframe自适应高度的方法(兼容IE与FireFox)
Jun 24 Javascript
详解jQuery事件
Jan 13 Javascript
Angular2中如何使用ngx-translate进行国际化
May 21 Javascript
关于JavaScript中forEach和each用法浅析
Jul 27 Javascript
在 Vue-CLI 中引入 simple-mock实现简易的 API Mock 接口数据模拟
Nov 28 Javascript
webpack-url-loader 解决项目中图片打包路径问题
Feb 15 Javascript
微信小程序如何引用外部js,外部样式,公共页面模板
Jul 23 Javascript
在vue中使用回调函数,this调用无效的解决
Aug 11 Javascript
解决vue watch数据的方法被调用了两次的问题
Nov 07 Javascript
利用javaScript处理常用事件详解
Apr 14 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
PHP中创建空文件的代码[file_put_contents vs touch]
2012/01/20 PHP
php单一接口的实现方法
2015/06/20 PHP
php文件缓存方法总结
2016/03/16 PHP
PHP获取当前URL路径的处理方法(适用于多条件筛选列表)
2017/02/10 PHP
Yii框架小部件(Widgets)用法实例详解
2020/05/15 PHP
accesskey 提交
2006/06/26 Javascript
从零开始学习jQuery (八) 插播:jQuery实施方案
2011/02/23 Javascript
ajax上传时参数提交不更新等相关问题
2012/12/11 Javascript
jquery如何实现在加载完iframe的内容后再进行操作
2013/09/10 Javascript
php+js实现倒计时功能
2014/06/02 Javascript
JavaScript时间转换处理函数
2015/04/14 Javascript
实例讲解jquery与json的结合
2016/01/07 Javascript
JQuery ztree 异步加载实例讲解
2016/02/25 Javascript
Java框架SSH结合Easyui控件实现省市县三级联动示例解析
2016/06/12 Javascript
如何在Angular2中使用jQuery及其插件的方法
2017/02/09 Javascript
JS正则表达式验证密码格式的集中情况总结
2017/02/23 Javascript
Webpack中publicPath路径问题详解
2018/05/03 Javascript
使用vuex解决刷新页面state数据消失的问题记录
2019/05/08 Javascript
Vue-cli项目部署到Nginx服务器的方法
2019/11/01 Javascript
vue-dplayer 视频播放器实例代码
2019/11/08 Javascript
在vue中实现禁止回退上一步,路由不存历史记录
2020/07/22 Javascript
Python警察与小偷的实现之一客户端与服务端通信实例
2014/10/09 Python
详解python的数字类型变量与其方法
2016/11/20 Python
Python中进程和线程的区别详解
2017/10/29 Python
使用python绘制3维正态分布图的方法
2018/12/29 Python
django主动抛出403异常的方法详解
2019/01/04 Python
代码实例讲解python3的编码问题
2019/07/08 Python
python使用for...else跳出双层嵌套循环的方法实例
2020/05/17 Python
美国最佳选择产品网站:Best Choice Products
2019/05/27 全球购物
英国行业制服供应商:Alexandra
2019/09/14 全球购物
绝对经典成功的大学生推荐信
2013/11/08 职场文书
财务简历的自我评价
2014/03/05 职场文书
2014年工人工作总结
2014/11/25 职场文书
2015年中秋晚会主持词
2015/07/01 职场文书
MYSQL如何查看操作日志详解
2022/05/30 MySQL
PostgreSQL怎么创建分区表详解
2022/06/25 PostgreSQL