微信小程序基于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游戏之优化篇
Nov 08 Javascript
qTip2 精致的基于jQuery提示信息插件
Feb 17 Javascript
JQuery实现点击div以外的位置隐藏该div窗口
Sep 13 Javascript
jquery.uploadify插件在chrome浏览器频繁崩溃解决方法
Mar 01 Javascript
详解maxlength属性在textarea里奇怪的表现
Dec 27 Javascript
JS DOM实现鼠标滑动图片效果
Sep 17 Javascript
实例讲解使用原生JavaScript处理AJAX请求的方法
May 10 Javascript
BootStrap Table 获取同行不同列元素的方法
Dec 19 Javascript
Bootstrap模态框案例解析
Mar 05 Javascript
微信小程序实现左滑修改、删除功能
Oct 19 Javascript
微信小程序实现星级评价
Nov 20 Javascript
小程序跳转H5页面的方法步骤
Mar 06 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
解析phpstorm + xdebug 远程断点调试
2013/06/20 PHP
小程序微信支付功能配置方法示例详解【基于thinkPHP】
2019/05/05 PHP
不用ajax实现点击文字即可编辑的方法
2007/12/16 Javascript
Javascript在IE和FireFox中的不同表现简析
2012/12/03 Javascript
js弹出框轻量级插件jquery.boxy使用介绍
2013/01/15 Javascript
THREE.JS入门教程(5)你应当知道的十件事
2013/01/24 Javascript
JavaScript中使用concat()方法拼接字符串的教程
2015/06/06 Javascript
JavaScript学习笔记之数组随机排序
2016/03/23 Javascript
JQuery 两种方法解决刚创建的元素遍历不到的问题
2016/04/13 Javascript
基于BootStarp的Dailog
2016/04/28 Javascript
微信小程序获取微信运动步数的实例代码
2017/07/20 Javascript
get  post jsonp三种数据交互形式实例详解
2017/08/25 Javascript
JS和JQuery实现雪花飘落效果
2017/11/30 jQuery
js实现下拉框二级联动
2018/12/04 Javascript
vue组件是如何解析及渲染的?
2021/01/13 Vue.js
朴素贝叶斯算法的python实现方法
2014/11/18 Python
对python 自定义协议的方法详解
2019/02/13 Python
python使用Pandas库提升项目的运行速度过程详解
2019/07/12 Python
Python BeautifulSoup [解决方法] TypeError: list indices must be integers or slices, not str
2019/08/07 Python
Python 微信公众号文章爬取的示例代码
2020/11/30 Python
Python中正则表达式对单个字符,多个字符和匹配边界等使用
2021/01/27 Python
美国知名的百货清仓店:Neiman Marcus Last Call
2016/08/03 全球购物
澳大利亚时尚前卫设计师珠宝在线:Amber Sceats
2017/10/04 全球购物
linux系统都有哪些运行级别
2012/04/15 面试题
如何通过 CSS 写出火焰效果
2021/03/24 HTML / CSS
房地产促销活动方案
2014/03/01 职场文书
会计与审计专业自荐信范文
2014/03/15 职场文书
服务承诺书格式
2014/05/21 职场文书
计算机网络专业自荐书
2014/06/09 职场文书
2014年电厂工作总结
2014/12/04 职场文书
2016年寒假见闻
2015/10/10 职场文书
详解如何用Python实现感知器算法
2021/06/18 Python
php修改word的实例方法
2021/11/17 PHP
java协程框架quasar和kotlin中的协程对比分析
2022/02/24 Java/Android
MySQL分区路径子分区再分区
2022/04/13 MySQL
Spring Boot配合PageHelper优化大表查询数据分页
2022/04/20 Java/Android