【发布时间】:2015-08-14 22:06:49
【问题描述】:
我希望在响应式画布中有一个 javascript 弹跳球。
我的目标是让动画画布与其加载的视口大小相同,而不是固定大小的画布(目前为 1366x768)。
问题是,如果有人在移动设备上以 320 像素的视口加载页面,他们会错过部分动画及其唯一用途。
到目前为止,通过反复试验,我得到了这个脚本:
<script>
var context;
var x=100;
var y=200;
var dx=5;
var dy=5;
function init()
{
context= myCanvas.getContext('2d');
setInterval(draw,10);
}
function draw()
{
context.clearRect(0,0,1366,768);
context.beginPath();
context.fillStyle="#fedc00";
// Draws a circle of radius 20 at the coordinates 100,100 on the canvas
context.arc(x,y,16,0,Math.PI*2,true);
context.closePath();
context.fill();
// Boundary Logic
if( x<0 || x>1366) dx=-dx;
if( y<0 || y>768) dy=-dy;
x+=dx;
y+=dy;
}
</script>
和 HTML
<body onLoad="init();">
<div class="canvas">
<canvas id="myCanvas" width="1366" height="768">
</canvas>
</div>
我想知道这是否需要在 javascript 中完成,或者脚本是否应该根本不提及画布大小(应该是视口的 100% 宽度/高度)并使用 CSS 中的媒体查询来解决它?
能否请您指点一下我需要从脚本中添加/删除哪些内容才能使其正常工作?
提前致谢!
【问题讨论】:
标签: javascript css html animation