添加控件以操纵Javascript Canvas中的动画
Adding controls to manipulate Animation in Javascript Canvas
我正在学习使用Html5 Canvas。如何添加两个按钮来降低或提高画布中动画正方形的速度?我是一个编程初学者,所以我尽量保持简单。
<!DOCTYPE HTML>
<html>
<head>
<style>
body {
margin: 0px;
padding: 0px;
}
</style>
</head>
<body>
<canvas id="ex1" width="525" height="200" style = "border: 5px solid black;"</canvas>
<script>
var x = 0;
var y = 15;
var speed = 10;
function animate() {
reqAnimFrame = window.mozRequestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.msRequestAnimationFrame ||
window.oRequestAnimationFrame
;
reqAnimFrame(animate);
x += speed;
if(x <= 0 || x >= 475)
{
speed = -speed;
}
draw();
}
function draw() {
var canvas = document.getElementById("ex1");
var context = canvas.getContext("2d");
context.clearRect(0, 0, 600, 170);
context.fillStyle = "#ff00ff";
context.fillRect(x, y, 40, 40);
}
animate();
</script>
<p></p>
<audio controls>
<source src="fortworth.ogg" type="audio/ogg">
<source src="fortworth.mp3" type="audio/mpeg">
Your browser does not support the audio element.
</audio>
</body>
</html>
您可以在html中添加2个按钮,如下所示:
<input type="button" value="+" id="btnAdd">
在javascript中,将按钮绑定到点击事件,如下所示:
document.getElementById('btnAdd').addEventListener('click', function(event) {
//Here you do your logic
speed++;
});
为了速度,你也要做同样的事情;
编辑:工作FIDDLE
相关文章:
- Canvas+svg路径动画,在路径中的特定点暂停一段时间,然后继续
- 如何使用Canvas制作3D动画
- 添加控件以操纵Javascript Canvas中的动画
- 性能:CSS3 动画与 HTML5 Canvas
- 在HTML5 Canvas / Fabric js中循环播放动画
- HTML Canvas 中的 Javascript Animation - 无法将动画保留在边框内
- Javascript 和 Canvas - 为正弦波制作动画
- timeout函数,用于使用canvas的简单html 5 javascript动画
- 如何将自定义形状变形/设置动画为圆形?CANVAS JS
- HTML Canvas动画序列图像在IPAD上很慢
- HTML-Canvas - javascript -动画/绘图
- Canvas动画帧渲染:无限循环vs.鼠标移动触发()
- 平滑动画在kinetic.js (html5 canvas)
- HTML 5 Canvas元素在.setinterval方法中没有正确动画
- 尝试在canvas / JS中动画一个跳跃
- 用/javascript/canvas创建的形状动画
- 适合在Canvas中实现跳棋棋盘游戏的模型,考虑到动画
- 使用Canvas设置圆形动画-如何展开以填充整个视口
- Javascript Canvas动画超过了最大调用堆栈大小
- 播放/暂停任何Canvas动画