微信小程序基于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中关于执行环境的杂谈
Aug 14 Javascript
IE6浏览器下resize事件被执行了多次解决方法
Dec 11 Javascript
javascript简单实现命名空间效果
Mar 06 Javascript
Backbone.js的Hello World程序实例
Jun 19 Javascript
jQuery遍历DOM的父级元素、子级元素和同级元素的方法总结
Jul 07 Javascript
基于pako.js实现gzip的压缩和解压功能示例
Jun 13 Javascript
详细AngularJs4的图片剪裁组件的实例
Jul 12 Javascript
vue中Npm run build 根据环境传递参数方法来打包不同域名
Mar 29 Javascript
vue 详情跳转至列表页实现列表页缓存
Mar 27 Javascript
vue $set 给数据赋值的实例
Nov 09 Javascript
ant design实现圈选功能
Dec 17 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
php生成图形验证码几种方法小结
2013/08/15 PHP
在Linux系统下一键重新安装WordPress的脚本示例
2015/06/30 PHP
Symfony实现行为和模板中取得request参数的方法
2016/03/17 PHP
PHP Socket网络操作类定义与用法示例
2017/08/30 PHP
基于jquery和svg实现超炫酷的动画特效
2014/12/09 Javascript
Node.js实用代码段之获取Buffer对象字节长度
2016/03/17 Javascript
JS中多种方式创建对象详解
2016/03/22 Javascript
Bootstrap中datetimepicker使用小结
2016/12/28 Javascript
利用jQuery异步上传文件的插件用法详解
2017/07/19 jQuery
vue 文件目录结构详解
2017/11/24 Javascript
浅谈在node.js进入文件目录的问题
2018/05/13 Javascript
微信小程序实现吸顶特效
2020/01/08 Javascript
javascript实现移动端触屏拖拽功能
2020/07/29 Javascript
javascript canvas封装动态时钟
2020/09/30 Javascript
如何利用vue实现波谱拟合详解
2020/11/05 Javascript
JavaScript实现原型封装轮播图
2020/12/27 Javascript
[04:13]2018国际邀请赛典藏宝瓶Ⅱ饰品一览
2018/07/21 DOTA
python操作MySQL 模拟简单银行转账操作
2017/09/27 Python
从django的中间件直接返回请求的方法
2018/05/30 Python
详解Python3.6的py文件打包生成exe
2018/07/13 Python
Python实现繁体中文与简体中文相互转换的方法示例
2018/12/18 Python
我用Python抓取了7000 多本电子书案例详解
2019/03/25 Python
Python requests模块cookie实例解析
2020/04/14 Python
python 基于卡方值分箱算法的实现示例
2020/07/17 Python
python使用隐式循环快速求和的实现示例
2020/09/11 Python
canvas绘制圆角头像的实现方法
2019/01/17 HTML / CSS
世界上最大的餐具公司:Oneida
2016/12/17 全球购物
Right-on官方网站:日本知名的休闲服装品牌
2019/07/12 全球购物
STP的判定过程
2012/10/01 面试题
会计学生自我鉴定
2014/02/06 职场文书
入党积极分子自我鉴定范文
2014/03/25 职场文书
护士求职信
2014/07/05 职场文书
全国优秀教师事迹材料
2014/08/26 职场文书
节约用电通知
2015/04/25 职场文书
2019年中,最受大众欢迎的6本新书
2019/08/07 职场文书
基于Python实现对比Exce的工具
2022/04/07 Python