美文网首页
canvas中通过globalAlpha实现渐隐效果

canvas中通过globalAlpha实现渐隐效果

作者: _韩小妖 | 来源:发表于2016-05-29 21:42 被阅读1198次

canvas 想要实现渐隐效果,首先要理解显示,隐藏效果的原理,
在canvas中怎么实现显示或者隐藏的效果呢?canvas中提供了一个API:
语法:

 ctx.globalAlpha = number  //值在[0,1]之间, 全局透明度

定义和用法
globalAlpha 属性设置或返回绘图的当前透明值(alpha 或 transparency)。
globalAlpha 属性值必须是介于 0.0(完全透明) 与 1.0(不透明) 之间的数字。

需要注意,这个API作用于canvas的全局,只要我们使用,canvas上所有的内容都会变成相同的透明度

如何来控制它的作用区间呢?

我们可以使用save 和restore 来实现,这两个属性通常成对存在,它可以控制在save和restore之间任何的属性都只作用这两个内容之间,对其他的内容没有影响

 ctx.save();
 ctx.globalAlpha = 0.5;     //此时  画出的图片的透明度为0.5
 ctx.drawImage(img,x,y,w,h);     
 ctx.restore();

通过控制globalAlpha的值在0或者1,就可以轻松实现canvas内容的显示和隐藏,那么渐隐效果怎么实现呢,其实只需给它globalAlpha一个变化的生命值life,而它这个值的获取可以用deltaTime(两帧时间间隔)进行调整,使得它随时间的变化非常的流畅,deltaTime的获取请参考循环调用requestAnimationFrame的使用,我在上一篇文章中有详细的代码[http://www.jianshu.com/p/6101c4dc144c]

var life = 0; //初始状态下为0,完全不显示
var switchy = true; //定义一个开关,可以通过判断条件进行赋值ture或false
function aliveUpdte(){
            if (switchy) {  //显示时
                life += 0.2 * deltaTime * 0.01;
                if (life >= 1) {
                    life = 1;
                }

            }else{  //隐藏时
                life -= 0.2 * deltaTime * 0.01;
                if (life <= 0) {
                    life = 0;
                }
            }
        }
//在gameloop中对aliveUpdte()进行调用,就可以实现渐隐效果啦

相关文章

  • canvas中通过globalAlpha实现渐隐效果

    canvas 想要实现渐隐效果,首先要理解显示,隐藏效果的原理,在canvas中怎么实现显示或者隐藏的效果呢?ca...

  • 【学习笔记 】React ⑤ 动画效果

    借助transition实现渐隐渐现 通过@keyframes定义一些动画效果 使用react-transitio...

  • 微信小程序生成二维码

    实现的效果: 使用(自适应不同的手机): canvas的长宽通过计算获得 wxml页面中: wxml中的canva...

  • 自定义日历控件

    效果图 使用 实现 MonthView 通过drawHeaderSpace(canvas)方法绘制顶灰色部间隔 通...

  • 前端效果链接

    canvas canvas实现各种点线效果 Canvas设置width与height 的问题!

  • 基于canvas画板原理(H5)

    一个简单的小事例,利用canvas实现画板效果。实现原理:鼠标事件+canvas效果图: 代码: 如有问题欢迎交流...

  • 2017-12-28

    使用canvas和js实现烟花的效果 效果如下:

  • 微信小程序——AR+3D

    AR 通过camera组件和canvas组件实现AR效果其中onCameraFrame会每帧获取数据,注意该方法不...

  • canvas图层

    canvas理论上是不存在图层的概念,要实现图层可以通过在内存中建立多个canvas对象,通过globalComp...

  • Openlayers4中实现动态线效果

    概述: 本文讲述如何结合canvas在Openlayers4中实现动态线的效果。 效果: 代码: 1、move-l...

网友评论

      本文标题:canvas中通过globalAlpha实现渐隐效果

      本文链接:https://www.haomeiwen.com/subject/wxpqdttx.html