javascript - 单击按钮时使球从上到下掉落

标签 javascript html css

我编写了一个程序来在单击按钮时为球设置动画。这是一个更大元素的实验的一部分:
这是屏幕截图:
Website
这是代码:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>HTML5 Random Bouncing Ball</title>
<style type="text/css">
<!--
body { background-color:#ededed; font:normal 12px/18px Arial, Helvetica, sans-serif; }
h1 { display:block; width:600px; margin:20px auto; padding-bottom:20px; font:normal 24px/30px Georgia, "Times New Roman", Times, serif; color:#333; text-shadow: 1px 2px 3px #ccc; border-bottom:1px solid #cbcbcb; }

#myCanvas { background:#fff; border:1px solid #cbcbcb; }
#nav { display:block; width:100%; text-align:center; }
#nav li { display:block; font-weight:bold; line-height:21px; text-shadow:1px 1px 1px #fff; width:100px; height:21px; padding:5px; margin:0 10px; background:#e0e0e0; border:1px solid #ccc; -moz-border-radius:4px;-webkit-border-radius:4px; border-radius:4px; float:left; }
#nav li a { color:#000; display:block; text-decoration:none; width:100%; height:100%; }
-->
</style>
<script type="text/javascript">
function myFunction () {

        var context;
        var dx= 4;  
        var dy=4;
        var y=150;
        var x=10;
        function draw(){
            context= myCanvas.getContext('2d');
            context.clearRect(0,0,400,400);
            context.beginPath();
            context.fillStyle="#000000";
            context.arc(x,y,10,0,Math.PI*2,true);
            context.closePath();
            context.fill();
            if( x<0 || x>400)
            dx=-dx;
            if( y<0 || y>300)
            dy=-dy;
            x+=dx;
            y+=dy;
        }
        setInterval(draw,10); 
}
</script>

</head>
<body>

<div id="container">

    <canvas id="myCanvas" width="400" height="300"></canvas>



</div>
<input id="button" type="submit" name="button" value="enter" onclick="myFunction();"/>

</body>
</html>   

按下按钮时,如何让小球从上到下落下?

最佳答案

有几个步骤,你需要做的,首先,禁用垂直速度(你不需要删除它,只需将它设置为0),然后在“draw”函数中删除if循环,并创建一个新的,像这样:

如果(y >= 300){ y = 290;//将球的 Y 位置设置为 Canvas 底部 dy = 0;//最后这个设置下降为零 }

如果您想让它更复杂,请创建一个新变量“gravity”,并在每次轮流中增加 dy 变量的引力。那么上面的代码必须是这样的:

如果(y >= 300){ y = 290;//将球的 Y 位置设置为 Canvas 底部 dy = 0;//最后这个设置下降为零 重力= 0; }

关于javascript - 单击按钮时使球从上到下掉落,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26677126/

相关文章:

javascript - 比较对象并提取深度差异

javascript - 如何知道计算机使用的语言?

javascript - 尝试清理 lodash 中的对象键

html - 文本字段和按钮在同一行

html - 在页脚元素中 float 其他元素时,如何向页脚添加背景图像?

CSS 最小高度不适用于 mozilla firefox

javascript - 从带有错误值签名的回调中创建 promise

javascript - 初始切换后,侧边栏停止在 Android Chrome 上显示

html - 样式表中的星号。 VS 给我警告

javascript - 如何在几个 div 中迭代切换元素