微信小程序基于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 相关文章推荐
JQuery,Extjs,YUI,Prototype,Dojo 等JS框架的区别和应用场景简述
Apr 15 Javascript
jQuery内部原理和实现方式浅析
Feb 03 Javascript
Node.js 文件夹目录结构创建实例代码
Jul 08 Javascript
js实现键盘自动打字效果
Dec 23 Javascript
微信小程序 picker-view 组件详解及简单实例
Jan 10 Javascript
Jquery中attr与prop的区别详解
May 27 jQuery
Web技术实现移动监测的介绍
Sep 18 Javascript
JS严格模式知识点总结
Feb 27 Javascript
webpack 模块热替换原理
Apr 09 Javascript
Vue发布项目实例讲解
Jul 17 Javascript
vue-froala-wysiwyg 富文本编辑器功能
Sep 19 Javascript
js实现录音上传功能
Nov 22 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中关于长度计算容易混淆的问题分析
2016/05/27 PHP
PHP智能识别收货地址信息实例
2019/01/05 PHP
初学js插入节点appendChild insertBefore使用方法
2011/07/04 Javascript
jquery移动listbox的值原理及代码
2013/05/03 Javascript
from表单多个按钮提交用onclick跳转不同action
2014/04/24 Javascript
详解JavaScript ES6中的模板字符串
2015/07/28 Javascript
Bootstrap项目实战之首页内容介绍(全)
2016/04/25 Javascript
基于jQuery下拉选择框插件支持单选多选功能代码
2016/06/07 Javascript
JS取数字小数点后两位或n位的简单方法
2016/10/24 Javascript
Javascript中this关键字指向问题的测试与详解
2017/08/11 Javascript
浅谈目前可以使用ES10的5个新特性
2019/06/25 Javascript
Vue数据驱动表单渲染,轻松搞定form表单
2019/07/19 Javascript
es6中new.target的作用和使用场景简单示例分析
2020/03/14 Javascript
python实现的简单RPG游戏流程实例
2015/06/28 Python
Python实现批量检测HTTP服务的状态
2016/10/27 Python
简单谈谈python中的多进程
2016/11/06 Python
基于python的七种经典排序算法(推荐)
2016/12/08 Python
Django数据库表反向生成实例解析
2018/02/06 Python
python版本五子棋的实现代码
2018/12/11 Python
python 二维数组90度旋转的方法
2019/01/28 Python
python爬虫模拟浏览器访问-User-Agent过程解析
2019/12/28 Python
tensorflow入门:TFRecordDataset变长数据的batch读取详解
2020/01/20 Python
python使用bs4爬取boss直聘静态页面
2020/10/10 Python
python+appium+yaml移动端自动化测试框架实现详解
2020/11/24 Python
巴西网上药房:onofre
2016/11/21 全球购物
美国领先的家庭健康检测试剂盒提供商:LetsGetChecked
2019/03/18 全球购物
德国在线购买葡萄酒网站:Geile Weine
2019/09/24 全球购物
英国经济型酒店品牌:Travelodge
2019/12/17 全球购物
cf收人广告词
2014/03/14 职场文书
教师考核材料
2014/05/21 职场文书
写得不错的求职信范文
2014/07/11 职场文书
教师见习报告范文
2014/11/03 职场文书
安全员岗位职责范本
2015/04/11 职场文书
欢送领导祝酒词
2015/08/12 职场文书
寒假致家长的一封信
2015/10/10 职场文书
Win10本地连接不见了怎么恢复? win10系统电脑本地连接不见了解决方法
2023/01/09 数码科技