FadeIn FadeOut in Html5 canvas
FadeIn FadeOut in Html5 canvas
我有一个带有图像的画布,我想不断淡入和淡出图像。我使用了上面的代码:
<!DOCTYPE HTML>
<html>
<head>
<script>
var canvas;
var context;
var ga = 0.0;
var timerId = 0;
var timerId1 = 0;
function init()
{
canvas = document.getElementById("myCanvas");
context = canvas.getContext("2d");
timerId = setInterval("fadeIn()", 300);
console.log(timerId);
}
function fadeIn()
{
context.clearRect(0,0, canvas.width,canvas.height);
context.globalAlpha = ga;
var photo = new Image();
photo .onload = function()
{
context.drawImage(photo , 0, 0, 450, 500);
};
photo .src = "photo .jpg";
ga = ga + 0.1;
if (ga > 1.0)
{
fadeOut();
goingUp = false;
clearInterval(timerId);
}
}
function fadeOut()
{
context.clearRect(0,0, canvas.width,canvas.height);
context.globalAlpha = ga;
var photo = new Image();
photo .onload = function()
{
context.drawImage(photo , 0, 0, 450, 500);
};
photo .src = "photo .jpg";
ga = ga - 0.1;
if (ga < 0)
{
goingUp = false;
clearInterval(timerId);
}
}
</script>
</head>
<body onload="init()">
<canvas height="500" width="500" id="myCanvas"></canvas>
</body>
是否可以在 setInterval 中插入两个函数?我想在淡入功能后触发淡出。怎么可能??
这是执行此操作的一种方法:
var alpha = 0, /// current alpha value
delta = 0.1; /// delta = speed
在主循环中,然后用当前阿尔法增加阿尔法。当 alpha 达到枯萎 0 或 1 反向增量时。这将创建乒乓球淡入淡出:
function loop() {
alpha += delta;
if (alpha <= 0 || alpha >= 1) delta = -delta;
/// clear canvas, set alpha and re-draw image
ctx.clearRect(0, 0, demo.width, demo.height);
ctx.globalAlpha = alpha;
ctx.drawImage(img, 0, 0);
requestAnimationFrame(loop); // or use setTimeout(loop, 16) in older browsers
}
相关文章:
- Canvas Html5绘图应用程序,移动画布会导致重大问题
- IE9的HTML5 Canvas getImageData()函数存在问题
- 查找带有边框的HTML5 Canvas(点击)事件的坐标
- 在keydown(JS,Jquery)上更改HTML5 Canvas元素
- HTML5 Canvas访问控制允许原始错误
- HTML5 Canvas toDataURL(“image/png”)适用于一些绘画,而有些则不然,不确定原因
- 如何在MVC5中运行时在HTML5 Canvas中显示图像
- HTML5 Canvas无法加载Kinetic.js
- 构建HTML5 Canvas/JS游戏
- 在我的网页上定位 Canvas HTML5 游戏时遇到问题
- Adobe Canvas HTML5 AS3点击标记
- 使用Canvas/HTML5创建或显示N-QAM星座
- Javascript 中用于 Flash Canvas HTML5 的倒数时钟计时器
- Canvas Html5:多个画布,清除其中一个会同时清除另一个画布
- 在canvas HTML5中检测对象相对于另一个对象的位置
- 在canvas HTML5中循环使用"gap "广场之间
- Canvas HTML5数据点指向数组
- Canvas HTML5 inheritance
- Canvas HTML5 JavaScript代码不起作用,使用Canvas.toDataURL()
- Javascript内存泄漏-Canvas HTML5 jQuery