微信小程序基于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 json 新手入门文档
Dec 03 Javascript
Javascript中定义方法的另类写法(批量定义js对象的方法)
Feb 25 Javascript
深入理解javascript构造函数和原型对象
Sep 23 Javascript
node.js中的http.response.end方法使用说明
Dec 14 Javascript
jQuery实现可用于博客的动态滑动菜单完整实例
Sep 17 Javascript
js实现接收表单的值并将值拼在表单action后面的方法
Nov 23 Javascript
Bootstrap每天必学之警告框插件
Apr 26 Javascript
Javascript 判断两个IP是否在同一网段实例代码
Nov 28 Javascript
深入分析element ScrollBar滚动组件源码
Jan 22 Javascript
简单了解vue中父子组件如何相互传递值(基础向)
Jul 12 Javascript
js 动态校验开始结束时间的实现代码
May 25 Javascript
JS 基本概念详细介绍
Oct 16 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生成缩略图的类代码
2008/10/02 PHP
php模板引擎技术简单实现
2016/03/15 PHP
PHP迭代器接口Iterator用法分析
2017/12/28 PHP
javascript对象的property和prototype是这样一种关系
2007/03/24 Javascript
jquery中交替点击事件的实现代码
2014/02/14 Javascript
巧用局部变量提升javascript性能
2014/02/24 Javascript
javascript实现简单的鼠标拖动效果实例
2015/04/10 Javascript
jsonp跨域请求数据实现手机号码查询实例分析
2015/12/12 Javascript
jQuery按需加载轮播图(web前端性能优化)
2017/02/17 Javascript
Bootstrap3下拉菜单的实现
2017/02/22 Javascript
JS实现商品筛选功能
2020/08/19 Javascript
nodejs读取本地中文json文件出现乱码解决方法
2018/10/10 NodeJs
详解JavaScript 为什么要有 Symbol 类型?
2019/04/03 Javascript
Vue项目中使用jquery的简单方法
2019/05/16 jQuery
浅析JavaScript 函数防抖和节流
2020/07/13 Javascript
Vue 构造选项 - 进阶使用说明
2020/08/14 Javascript
Vue+axios封装请求实现前后端分离
2020/10/23 Javascript
python原始套接字编程示例分享
2014/02/21 Python
python基于multiprocessing的多进程创建方法
2015/06/04 Python
利用Tkinter和matplotlib两种方式画饼状图的实例
2017/11/06 Python
深入理解Python分布式爬虫原理
2017/11/23 Python
Python编程实现二分法和牛顿迭代法求平方根代码
2017/12/04 Python
python爬虫获取新浪新闻教学
2018/12/23 Python
python获取磁盘号下盘符步骤详解
2019/06/19 Python
选择python进行数据分析的理由和优势
2019/06/25 Python
django 实现将本地图片存入数据库,并能显示在web上的示例
2019/08/07 Python
Win10下用Anaconda安装TensorFlow(图文教程)
2020/06/18 Python
pycharm 复制代码出现空格的解决方式
2021/01/15 Python
Python对excel的基本操作方法
2021/02/18 Python
是否有自动比较结构的方法
2015/06/03 面试题
高中生第一学年自我鉴定2015
2014/09/28 职场文书
个人租房协议书样本
2014/10/01 职场文书
2015迎新晚会活动总结
2015/07/16 职场文书
中国梦宣传标语口号
2015/12/26 职场文书
火锅店的开业营销方案范本!
2019/07/05 职场文书
Java循环队列与非循环队列的区别总结
2021/06/22 Java/Android